设为首页 加入收藏

TOP

C++面向对象程序设计之C++的初步知识(六)
2019-07-10 18:11:09 】 浏览:346
Tags:面向 对象 程序设计 初步 知识
tring)<<endl;                //书上为4,实际两个都为16
cout<<sizeof(name)<<endl;                //书上为20,两个都为80
sizeof(string);                            //空
sizeof(name);                            //空


system("pause");
return 0;
}


例1.15 输入三个字符串,要求按字母从小到大顺序输出


//暂不列举。


1.3.11 动态分配/撤销内存的运算符new和delete


C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数(为了兼容C,任然保留)。例如:


new int;        //开辟一个存放整数的空间,返回一个指向整型数据的指针


new int(100);        //开辟一个存放整数的空间,并制定该整数的初值为100


new char[10];        //开辟一个存放字符数组的空间,该数组有10个元素,返回一个指向字符数据的指针


new int[5][]4;        //开辟一个存放二维整形数组的空间,该数组大小为5*4


float *p=new float(3.14159)        //开辟一个存放实数的空间,并指定该实数的初值为3.14159,将返回的指向实型数据的指针赋给指针变量p


new运算符使用的一般格式为:new 类型[初值];  用new分配数组空间时不能指定初值。


delete运算符使用的一般格式为:delete []指针变量;例如撤销例子5开辟的存放实数的空间:deletep;


new和delete是运算符,不是函数,因此执行效率高。用了new后要用delete释放空间。


习题


注:因为只是习题而已,没有写的多认真,有些部分是复制前面写的代码,故仅供参考。


1.略


2.略


3.略


4.略


5.略


6.略


7.求2个或3个数中的最大值,用带有默认参数的函数实现。


#include<iostream>
using namespace std;
int max_3(int a,int b=1,int c=2)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
int max_2(int a,int b=2)
{
if(b>a) return b;
else return a;
}
int main()
{
//重载函数不能带默认值
int a,b,c,d,e;
cout<<"如果要比较三个数字中的最大数,请在前三位输数字,后两位输0"<<endl;
cout<<"如果要比较两个数字中的最大数,请在前三位输0,后两位输数字"<<endl;
cin>>a>>b>>c>>d>>e;
if(a!=0,b!=0,c!=0) cout<<"max_3="<<max_3(a,b,c)<<endl;
else if(d!=0,e!=0) cout<<"max_2="<<max_2(d,e)<<endl;
//下面这两个符合默认参数的题意,但暂时无法做到从键盘获取参数
cout<<"max_3="<<max_3(0)<<endl;
cout<<"max_2="<<max_2(77,88)<<endl;
system("pause");
return 0;
}


求2/3个数的最大值,带默认参数


8.输入两个整数,按从大到小顺序输出,要求使用变量的引用。


#include<iostream>
using namespace std;
void sort(int &a,int &b)
{
int temp;
if(a<b) {temp=b;b=a;a=temp;}
cout<<a<<","<<b<<endl;
};


int main()
{
int a,int b;
cin>>a>>b;
sort(a,b);


system("pause");
return 0;
}


用引用实现两个数的从大到小排序


9.对3个变量按从小到大排序,要求使用变量的引用。


注:或能力有限,感觉本题题意不清,是3个什么变量?是整型,实型,长整型,浮点型,双精度,字符,亦或是字符串?本例中使用的是模板函数,虽类型不明确,但能使用函数解决大部分的类型。


#include<iostream>
using namespace std;
template<typename T>          //模板声明,其中T为类型参数
void sort(T &a,T &b,T &c)                    //定义一个通用函数,用T做虚拟的类型名
{
int temp;
if(a>b) {temp=a;a=b;b=temp;}
if(c<a) cout<<c<<','<<a<<','<<b<<endl;
    else if(c<b) cout<<a<<','<<c<<','<<b<<endl;
        else cout<<a<<','<<b<<','<<c<<endl;
}


int main()
{
int i1=8,i2=5,i3=6;
double d1=82.2,d2=53.4,d3=69.7;
long g1=78238,g2=-365,g3=45676;
char c1='c',c2='h',c3='d';


sort(i1,i2,i3);                &nbs

首页 上一页 3 4 5 6 7 下一页 尾页 6/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java 国际化标准程序实现 下一篇Python基础教程之网络编程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目