C++关于类的一些知识
来源:互联网 发布:js点击关闭弹出框 编辑:程序博客网 时间:2024/05/21 12:42
(以前开始学C++的时候写的,用MarkDown修改后就变成新的一篇了=_=)
1、类
class A{private:static int x;public:A(const A &);A& function(){return (*this);}};A a;
1、A b=a;//调用拷贝构造函数
2、A b;b=a;赋值运算
3、function返回引用,将不会调用拷贝构造函数,返回对象会调用拷贝构造函数
4、const type x = xxxx;const 与 &声明的变量需初始化;
5、在类里面声明静态变量,需要在类外初始化;int A::x= 0;
6、this为对象地址,*this为对象;
2、关于类与派生类(is-a关系)//例如菠萝是一种水果
class B:pubic A{private:int count;public:B():A();B(const B &a,int c=0):A(a),count(c);//将B类声明的对象赋值给a,&a=B的对象可访问A类成员,且调用A类拷贝构造函数初始化A类变量。};
1、B c;A *p=new B(); A类指针new为B类,即向下转换, A *p=&c; A &p=c;
公有继承后,p 为A类指针,可调用A类public函数,也可调用派生类的虚函数,即基类通过指针访问派生类函数。
2、纯虚函数 vitrual type function()=0;将声明类为抽象类,该类不可实例出对象,也不可在类内定义该函数。
3、派生类复制构造函数已注释。
4、在派生类使用基类函数方式例如:A::funciton();
5、访问基类对象方法:因为继承中都是用类初始化,而非对象,所以可以在派生类中声明返回类型为基类的函数。
例如:
class A:private string{public:string &getstr(){return (string &)*this; //string &副本对象=*this,基类指向派生类}};7、重载派生类输入输出流时A &istream <<(const A&a,istream &os){os<<(string &)a;//这将调用基类string的重载<<运算,要是基类没有重载运算将会报错return os;}
3、类与类(has-a关系)//菠萝也可以在午餐的时候吃
class A{};class B{private:A *a;public:B():};
1、与继承关系不同的是,可以在B类用A类指针或者对象进行初始化,而继承关系中是用类名,即类名调用基类构造与复制构造或者构造函数。
比如:若B继承A,则初始化为B(const B &b):A(b)、B(const B &b,const A &a1):A(a1);
若B has A,则初始化B(const B&b,const A &a1):a(a1);
- C++关于类的一些知识
- C关于时间的一些知识
- 关于C语言的一些零碎知识
- C语言的问题,关于temp参数的一些知识
- [C++基础 面对对象的一些知识]
- 关于blog的一些知识
- 关于字符集的一些知识
- 关于MIME的一些知识
- 关于指针的一些知识
- 一些关于sulinux的知识
- 关于MIME的一些知识
- 关于filter的一些知识
- 关于硬盘的一些知识
- 关于计算机硬件的一些知识
- 关于 CouchDB 的一些知识
- 关于搜索的一些知识
- 一些关于_WIN32_WINNT的知识
- 关于CFileDialog的一些知识
- 欢迎使用CSDN-markdown编辑器
- Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:22:5-2
- 声波信息通讯(二)
- 开始自己的征程
- POJ
- C++关于类的一些知识
- 【HDU5880】Family View(AC自动机)
- java 图片旋转
- linux 修改时间 date
- 文章标题
- 关于tiny4412开发板SD卡烧写u-boot脚本sd_fusing.sh的解释
- 分页
- 运算符重载
- angular4路由