300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C++使用默认参数的构造函数

C++使用默认参数的构造函数

时间:2020-03-15 22:53:20

相关推荐

C++使用默认参数的构造函数

如果在创建对象的时候,没有传递实参给该参数p,则该参数会被默认设置为5.0。book(char* a, double p = 5.0);

#include<iostream>using namespace std;class book{public:book(){}book(char* a, double p = 5.0);//默认参数5void display();private:double price;char * title;};book::book(char* a, double p) //在定义函数的时候可以不指定默认参数{title = a;price = p;}void book::display(){cout<<"The price of "<<title<<" is $"<<price<<endl;}int main(){book Harry("Harry Potter", 49.9);Harry.display();book Gone("Gone with the Wind");Gone.display();return 0;}

默认带参构造函数所带来的歧义:

#include<iostream>using namespace std;class book{public:book(){}book(char* a, double p = 5.0);book(char *a);void setprice(double a);double getprice();void settitle(char* a);char * gettitle();void display();private:double price;char * title;};book::book(char* a, double p) //在定义函数的时候可以不指定默认参数{title = a;price = p;}book::book(char *a){title = a;}void book::display(){cout<<"The price of "<<title<<" is $"<<price<<endl;}int main(){book Harry("Harry potter", 49.9);Harry.display();book Gone("Gone with the Wind"); //compile errorGone.display();return 0;}

出现这种情况我们只能极力去避免了,通常而言,在设计类的构造函数的时候最好不要同时是用构造函数的重载和带参数的构造函数,以避免上述问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。