随笔分类 - 【语言】{C++}
摘要:为什么用构造函数与析构函数构造函数:c++目标是让使用类对象就像使用标准类型一样,但是常规化的初始化句法不适用与类类型。 int year =2001; //基本类型 struct thing { char *pn; int m; }; thing amabob = {"jiang",-23}; //结构体的初始化,结构体默认的访问类型是public,可以直接访问类对象的数据部分的访问状态都是私有的,程序不能直接访问数据成员。程序只能通过成员函数才能访问数据成员,因此要设计合适的成员函数,才能成功的将对象初始化。析构函数:用构造函数创建对象后,程序...
阅读全文
摘要:C++中强制类型转换函数有4个:const_cast(用于去除const,volatile属性)static_cast(用于基本类型的强制转换)dynamic_cast(用于多态类型之间的类型转换)reinterpreter_cast(用于不同类型之间的指针间的转换,最常用的就是不同类型之间函数指针的转换)1、const_caststruct SA { int i;};int main(int argc, const char * argv[]){ const SA ra = SA(); //注意const变量必须定义的同时初始化,因为我们不可以给它重新赋值 //ra.i =...
阅读全文
摘要:STL提供了一组表示容器,迭代器,函数对象和算法的模板。容器是一个与数组类似的单元,可以存储若干个值。容器是同质的,即存储的值的类型一样。算法是完成特定任务的处方。迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针。函数对象类似于函数的对象,可以是类对象和函数指针(包括函数名,因为函数名被用作指针)STL使能够构造各种容器(包括数组,队列,链表)和执行各种操作(搜索,排序和随机排列)。STL不是面向对象编程,而是一种通用编程技术(generic programming)一、vector模板类1、创建一个vector对象,将一个vector对象赋给另一个对象,使用【】操作符来访问
阅读全文
摘要:所谓函数的重载是值完成不同功能的函数具有相同的函数名。C++编译器根据函数的实参来确定应该调用哪一个函数的。注意:定义的重载函数必须具有不同的参数个数,或者不同的参数类型。只有这样编译系统才有可能根据不同的参数去调用不同的重载函数。仅返回值不同时,不能定义为重载函数。int sum,a=3,b=2;sum=a+b; (int)=(int)+(int)//可以char str[4],c1[2]="a",c2[2]="b";str=c1+c2;(char*)=(char*)+(char*)//编译系统中的运算符“+”本身不具有这种运算。若使上式可以运算,必须
阅读全文
摘要:#include #include using namespace std;int main(){ char s[27],m[27]; int a[27]; int i,j,sum; ifstream infile1,infile2; //定义输入文件 ofstream outfile; //定义输出文件 infile1.open("file1.txt"); infile2.open("file2.txt"); outfile.open("file3.txt"); for ...
阅读全文
摘要:#include #includeusing namespace std;class String{ int length; int i;private: char* m_data;//用于保护字符串 public: String(const char *str=NULL)//普通构造函数 { cout<<"调用了构造函数"<<endl; if(str==NULL) { length=0; m_data=new char(1); //指针指向这段空间 ...
阅读全文
摘要:#include #include using namespace std;class B {public: B(int i){coutusingnamespacestd;class A{public: A() { coutfunc(); //A::func a->func1(); //B::func B b; //A B A::func b.func(); //A::func //B析构 //A析构} 而上面的这个例子又是另外一种情况,类B公有继承类A,那么B如果创建一个对象必须得先调用父类A...
阅读全文

浙公网安备 33010602011771号