设为首页 加入收藏

TOP

8.6 默认的类成员
2013-10-07 16:09:15 来源: 作者: 【 】 浏览:68
Tags:8.6 默认 成员

8.6 默认的类成员

请记住,编译器能为类默认提供一切所需要的。假定定义了如下类:

  1. class MyClass  
  2. {  
  3. int data;  
  4. }; 

这个类只定义了一个数据成员,似乎可做的工作很少,但编译器提供了一些成员。如果没有指定,编译器将提供如下成员的定义:

默认的构造函数:

  1. MyClass(){} 

执行逐个成员复制操作的复制构造函数:

  1. MyClass(const MyClass& obj) {/* Copy members */} 

析构函数定义如下:

  1. ~MyClass(){} 

执行逐个成员复制操作的默认赋值操作符:

  1. MyClass& operator=(const MyClass& obj) {/* Copy members */} 

警告:Visual C++(www.cppentry.com)没有实现自动定义的移动构造函数和移动赋值操作符,这与C++(www.cppentry.com) 11语言标准不一致。

如果定义了构造函数,编译器就不提供默认构造函数。如果不希望其他的默认操作受影响,就必须在类中把它们定义为私有,这样就不能从类的外部访问到它们。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.5.3 命名的对象是lvalue(3) 下一篇8.7.1 定义类模板(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·python数据分析岗的 (2025-12-25 10:02:21)
·python做数据分析需 (2025-12-25 10:02:19)
·成为一个优秀的pytho (2025-12-25 10:02:16)
·Java后端面试实习自 (2025-12-25 09:24:21)
·Java LTS版本有哪些 (2025-12-25 09:24:18)