关于C++的构造方法重载有关问题
关于C++的构造方法重载问题
在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++中,我加注释的那边怎么实现。不想再重复的写上面两句赋值语句。
在线等,谢谢。
------解决方案--------------------
------解决方案--------------------
C++不是Java,java在某些方面是学C++的。
你应该找本教科书看。
public不是放在你那个位置。注意大小写。参数变量的名字和成员变量不能相同。函数的第一个大括号放在第一行的第一列,单独一行,这才是C/C++风格。
像这样:
Person::Person(const char* pname , int page , const char* paddress)
: name(pname), age(page), address(paddress)
{
}
------解决方案--------------------
C++ 11引入了一个新的语法:delegation。
在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++中,我加注释的那边怎么实现。不想再重复的写上面两句赋值语句。
在线等,谢谢。
------解决方案--------------------
Persion(string name,int age,string address):name(name),age(age),address(address)
{
}
------解决方案--------------------
C++不是Java,java在某些方面是学C++的。
你应该找本教科书看。
public不是放在你那个位置。注意大小写。参数变量的名字和成员变量不能相同。函数的第一个大括号放在第一行的第一列,单独一行,这才是C/C++风格。
像这样:
Person::Person(const char* pname , int page , const char* paddress)
: name(pname), age(page), address(paddress)
{
}
------解决方案--------------------
C++ 11引入了一个新的语法:delegation。
class SomeType {
int number;
public:
SomeType(int new_number) : number(new_number) {}
SomeType() : SomeType(42) {}
};