作者asktin (问问题专用)
看板C_and_CPP
标题[问题] 建构式初始化串列和式中赋值的不同
时间Wed Sep 20 09:40:42 2017
class employee
{
char *name;
// 式中赋值
employee(char* tmp )
{
name = tmp;
}
// 初始化串列
employee(char* tmp):name(tmp)
{
}
}
这二种不是一样吗? 请问何时要用初始化串列? 优缺点为何?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.214.114.228
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1505871645.A.DC3.html
1F:→ bluesoul: 式中赋值等於给值两次。如果成员没有预设建构子会失败 09/20 09:48
3F:推 steve1012: 两个不一样 09/20 10:36
4F:→ notBeing: 改成char * const name 试试看 09/20 10:44
5F:→ asktin: 这样是不是能用初值串列就不要写在建构式中 09/20 13:29
6F:→ stucode: 一般来说是,除非有什麽特别需求。 09/20 13:41
7F:→ outofyou: 继承的时候? 09/20 14:06
8F:→ Richun: 如果class的const变数要初始化 好像只能用初始化串列 09/20 14:17
9F:推 s4300026: 我都用 foo(char a): a{a} 09/20 18:08
10F:推 s4300026: 如果变数改成 const,那传入的是const不知道行不行 09/20 18:11
11F:→ eye5002003: C++11可以在成员宣告处直接赋值,比写在建构子更漂亮 09/20 20:33