关于C++的构造方法重载问题

bojianyu 2014-02-22 03:24:52
在Java中,如果有一个类Person,其中有属性name , age , address。
public Person(String name, int age){
this.name = name ;
this.age = age ;
}
public Person(String name , int age , String address){
this(name , age);//这一句话的作用在C++中怎么实现?
this.address = address ;
}

请问在C++中,我加注释的那边怎么实现。不想再重复的写上面两句赋值语句。
在线等,谢谢。
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanxining 2014-02-22
  • 打赏
  • 举报
回复
引用 2 楼 bluesen 的回复:
C++不是Java,java在某些方面是学C++的。 你应该找本教科书看。 public不是放在你那个位置。注意大小写。参数变量的名字和成员变量不能相同。函数的第一个大括号放在第一行的第一列,单独一行,这才是C/C++风格。 像这样: Person::Person(const char* pname , int page , const char* paddress) : name(pname), age(page), address(paddress) { }
参数变量的名字和成员变量可以相同。初始化列表可以这样:

Person::Person(const char* pname , int age , const char* address)
    : name(name), age(age), address(address)
{
    // 也可以这样:
    this->name = name;
}
vanxining 2014-02-22
  • 打赏
  • 举报
回复
C++ 11引入了一个新的语法:delegation。

class SomeType  {
    int number;
 
public:
    SomeType(int new_number) : number(new_number) {}
    SomeType() : SomeType(42) {}
};
bluesen 2014-02-22
  • 打赏
  • 举报
回复
C++不是Java,java在某些方面是学C++的。 你应该找本教科书看。 public不是放在你那个位置。注意大小写。参数变量的名字和成员变量不能相同。函数的第一个大括号放在第一行的第一列,单独一行,这才是C/C++风格。 像这样: Person::Person(const char* pname , int page , const char* paddress) : name(pname), age(page), address(paddress) { }
lee_鹿游原 2014-02-22
  • 打赏
  • 举报
回复

Persion(string name,int age,string address):name(name),age(age),address(address)
{

}

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧