关于构造方法的用处

C++语言 码拜 10年前 (2015-05-11) 868次浏览 0个评论
 

我感觉new之后马上调用一个set data的方法也能起到构造函数的效果,那有构造函数除了看上去可以让代码简练一些外,有没有什么必不可少的作用吗?

那你每次创建一个对象都要set data,不累么
class A
{
    const char arr;
    const int i;
};
请问如果没有构造函数, 怎么给i,arr赋初值。
当你继承的时候,构造函数能帮你建立好父类的对象;
return的时候生成的临时对象也需要构造函数
引用 1 楼 ralln 的回复:

那你每次创建一个对象都要set data,不累么

累不累是另外一回事,起码我觉得set data更加清晰。

引用 2 楼 a30037338 的回复:

class A
{
    const char arr;
    const int i;
};
请问如果没有构造函数, 怎么给i,arr赋初值。

实例化之后调用一个方法给值不行?我不是做c++的,const应该是常量吧,常量一般是定义的时候直接给值的,这里有什么特殊的技巧?

有些代码编译器会加到构造函数中,如对多态的支持。《深入探索C++对象模型》
20分
引用 5 楼 Raffin 的回复:
Quote: 引用 2 楼 a30037338 的回复:

class A
{
    const char arr;
    const int i;
};
请问如果没有构造函数, 怎么给i,arr赋初值。

实例化之后调用一个方法给值不行?我不是做c++的,const应该是常量吧,常量一般是定义的时候直接给值的,这里有什么特殊的技巧?

对于const成员变量,要么类内初始化,要么在初始化列表中进行初始化。这样,构造函数显得很重要。构造函数干的事情,比你想得多

引用 5 楼 Raffin 的回复:

实例化之后调用一个方法给值不行?我不是做c++的,const应该是常量吧,常量一般是定义的时候直接给值的,这里有什么特殊的技巧?

class A
{
    const char arr;
    const int i;
    A():arr(“”a””), i(100){}
};

引用 7 楼 zhangxiangDavaid 的回复:
Quote: 引用 5 楼 Raffin 的回复:
Quote: 引用 2 楼 a30037338 的回复:

class A
{
    const char arr;
    const int i;
};
请问如果没有构造函数, 怎么给i,arr赋初值。

实例化之后调用一个方法给值不行?我不是做c++的,const应该是常量吧,常量一般是定义的时候直接给值的,这里有什么特殊的技巧?

对于const成员变量,要么类内初始化,要么在初始化列表中进行初始化。这样,构造函数显得很重要。构造函数干的事情,比你想得多

也就是说const变量不能通过调用一般方法传参进去给值是吧,那确实需要构造函数。

引用 9 楼 Raffin 的回复:
Quote: 引用 7 楼 zhangxiangDavaid 的回复:
Quote: 引用 5 楼 Raffin 的回复:
Quote: 引用 2 楼 a30037338 的回复:

class A
{
    const char arr;
    const int i;
};
请问如果没有构造函数, 怎么给i,arr赋初值。

实例化之后调用一个方法给值不行?我不是做c++的,const应该是常量吧,常量一般是定义的时候直接给值的,这里有什么特殊的技巧?

对于const成员变量,要么类内初始化,要么在初始化列表中进行初始化。这样,构造函数显得很重要。构造函数干的事情,比你想得多

也就是说const变量不能通过调用一般方法传参进去给值是吧,那确实需要构造函数。

你可以试试


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于构造方法的用处
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!