首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

麻烦看上这种写法,没见过

2012-12-31 
麻烦看下这种写法,没见过class Test2{public:Test2(int i 0):val(i){}void func(){coutvalendl}pri

麻烦看下这种写法,没见过
class Test2  
{  
public:  
    Test2(int i = 0):val(i){}  
    void func()  
    {  
        cout<<val<<endl;  
    }  
private:  
    int val;  
};  


其中    Test2(int i = 0):val(i){}  该怎么理解,那个冒号是什么作用,这一行是函数吗?
[解决办法]
Test2(int i = 0):val(i)
{

}   
是一个构造函数
[解决办法]
就是把i赋值给数据成员val,
因为这是一个函数,所以跨号是必须加的
[解决办法]

引用:
赋值操作为什么不放到{}里,非要用这种古怪的形式?

冒号后面是初始化列表
放到{}就变赋值了。
对于c++内置类型,放在初始化列表中和放在{}中没有什么区别。
对于自定义类型,放在初始化列表中效率更高(减少一次赋值)

楼主可以找找"初始化列表"的资料

热点排行