C++使用默认参数的构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++使用默认参数的构造函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如果在創(chuàng)建對象的時候,沒有傳遞實參給該參數(shù)p,則該參數(shù)會被默認設置為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);//默認參數(shù)5void display(); private:double price;char * title; };book::book(char* a, double p) //在定義函數(shù)的時候可以不指定默認參數(shù) {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; }默認帶參構(gòu)造函數(shù)所帶來的歧義:
#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) //在定義函數(shù)的時候可以不指定默認參數(shù) {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; }出現(xiàn)這種情況我們只能極力去避免了,通常而言,在設計類的構(gòu)造函數(shù)的時候最好不要同時是用構(gòu)造函數(shù)的重載和帶參數(shù)的構(gòu)造函數(shù),以避免上述問題。
總結(jié)
以上是生活随笔為你收集整理的C++使用默认参数的构造函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++参数初始化表
- 下一篇: C++利用构造函数限制对象的创建