大胖的部落格
Just a note
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
112 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Algorithm(13)
(rss)
C#(13)
(rss)
C++(22)
(rss)
Design Pattern(23)
(rss)
Others(14)
(rss)
STL(9)
(rss)
Technical(2)
(rss)
UML(2)
(rss)
Win32(18)
(rss)
Reference
Windows XP command line
最新评论
1. re: 在TCL命令行中调用C函数
@Kenny
实在不好意思,时间太过久远,本人已好久没有接触TCL……
--大胖
2. re: 在TCL命令行中调用C函数
請問如何溝通array 變數
Q:1
tcl array in C
Q:2
C array in tcl
懇求指導
--Kenny
3. re: 在TCL命令行中调用C函数
谢谢!
--1232
类构造函数初始化列表
类类型的数据成员在进入构造函数函数体前已经完成初始化,
所以如果在构造函数里对类类型成员赋值:
1、调用默认构造函数;
2、调用赋值操作符。
如果采用构造函数初始化列表进行初始化:
1、调用拷贝构造函数。
示例如下:
构造函数赋值
class
Object
{
public
:
Object()
{cout
<<
"
Object Default
"
<<
endl;}
Object(
const
Object
&
)
{cout
<<
"
Object Copy
"
<<
endl;}
Object
&
operator
=
(
const
Object
&
)
{cout
<<
"
Object Assignment
"
<<
endl;
return
*
this
;}
~
Object()
{cout
<<
"
Object Destructor
"
<<
endl;}
}
;
class
Container
{
public
:
Container(
const
Object
&
obj)
{
cout
<<
"
Container Construct
"
<<
endl;
//
assignment in constructor
c
=
obj;
}
~
Container()
{cout
<<
"
Container Destruct
"
<<
endl;}
private
:
Object c;
}
;
int
main(
int
argc,
char
*
argv[])
{
Object obj;
Container b(obj);
return
0
;
}
结果:
Object Default //第一个object的构造
Object Default //在进入Container的构造函数前,object已经构造
Container Construct //container开始构造
Object Assignment //调用object的赋值操作符
Container Destruct
Object Destructor
Object Destructor
构造函数初始化列表
Container(
const
Object
&
obj)
:c(obj)
//
initialization
{
cout
<<
"
Container Construct
"
<<
endl;
}
结果:
Object Default //第一个object构造
Object Copy //调用拷贝构造函数初始化类成员
Container Construct //container开始构造
Container Destruct
Object Destructor
Object Destructor
推荐使用构造函数初始化列表,因为比在构造函数内赋值少了一次赋值操作,但对内置数据类型区别不大。
其初始化顺序按照声明顺序,并非在初始化列表中的顺序。
以下几种情况必须使用初始化列表:
1、父类或类类型成员没有提供默认构造函数。
因为在构造函数执行前,父类或类类型成员必须先被构造。
2、const或引用成员。
因为它们都不能被赋值。
posted on 2009-05-25 15:22
大胖
阅读(216)
评论(0)
编辑
收藏
引用
所属分类:
C++
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
补码
带引用计数的智能指针(模板类)
虚基类、虚函数,对象内存分布
template
override, overload, hide
继承
基类中的虚函数
继承关系中的二义性
虚基类
C/C++关键字
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 大胖