类在其自身的定义体内作为数据类型
来源:互联网 发布:seo文章替换工具 编辑:程序博客网 时间:2024/04/29 15:58
只有static成员变量,指针或者引用,才可以在一个类的定义体内,用本类作为数据类型,如:
class Bar
{
public:
......
private:
static Bar member1; //OK
Bar* member2; //OK
Bar& member3; //OK
Bar member4; //ERROR "使用正在定义的Bar"
};
注意:如果Bar中有个成员函数的参数的数据类型是Bar,则是可以的。如:
class Book
{
public:
Book(const string& book_name) : author("Stanley B. Lippman")
{
this->book_name = book_name;
}
bool same_author(const Book book) const;
private:
string book_name;
string author;
};
加了static在前面,就仅仅是声明一个X类型的变量,而不是定义一个X类型的变量,声明由于不需要内存开销,因此也就不需要构造对象。
后面两个的原因,和上面的类似。
X * p1;
X & A2;
最后一个
X x;
必然会失败,这是定义了一个X类型的成员变量,因此要嗲用X的构造函数,而X在这句话要执行的时候,X这个类自身还没有定义完整,所以必然会出错。
0 0
- 类在其自身的定义体内作为数据类型
- 类在其自身的定义体内作为数据类型
- 类在其自身的定义体内作为数据类型
- 类在其自身的定义体内作为数据类型
- 类在其自身的定义体内作为数据类型
- 类在其自身的定义体内作为数据类型
- 为什么类的定义中不能包含其自身类型,但是能包含其自身的指针或引用类型
- 类的定义中不能包含其自身类型,但是能包含其自身的指针和引用类型
- 为什么类的定义中不能包含自身类型,而可以包含其自身的指针类型和引用类型
- 【c++】为什么类的定义中不能包含其自身类型,但是能包含其自身的指针或引用类型
- 类中定义自身类的对象
- 报告显示:企业正试图定义其自身的加密策略
- C++定义类时,为什么不能在类中声明自身类型的成员变量?
- 关于“不要在循环体内定义变量”
- 类中的成员是其自身的实例的问题
- 作为函数形参的数组,在函数体内,数组名仅仅是个指针
- 自身类作为事件监听器
- C++的类定义中,不能在类中定义自身类的对象,java中却可以
- oj 字符逆序
- git rebase用法解析
- jquery处理关于Gridview中的RadioButton不能实现单选的功能的解决方案
- TDD的iOS开发初步以及Kiwi使用入门
- Gray Code
- 类在其自身的定义体内作为数据类型
- android中数据的存储
- Js判断键盘按键
- hibernate简单的demo
- luci笔记
- WEB开发角度之功能模块--编辑器
- JS、JAVA获取域名、端口、绝对路径、相对路径
- android 反序列化
- erlang mysql 测试