程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> vc6 0-關於繼承的構造函數的問題

vc6 0-關於繼承的構造函數的問題

編輯:編程綜合問答
關於繼承的構造函數的問題

代碼如下:
#include
#include
using namespace std;

class A
{

public:
string name;
A (string);
};
class B : public A
{
public:
B ();
};
A::A (string name = "")
{
this->name = name;
}
B::B ()
{
;
}
int main()
{
B b;
return 0;
}
在vs2010沒有任何問題,但在vc6.0裡就會出現錯誤,提示:“沒有A合適的構造函數”。
請問該怎麼解決呀?
【用的是公司的編譯器,我自己的當然是2010了】

最佳回答:


在聲明時指定默認參數值,同時,把實現文件裡的默認值去掉。
另外,建議你在子類的構造函數初始化列表裡顯示調用基類的構造函數
1、
class A
{

public:
string name;
A (string);
};
改為
class A
{

public:
string name;
A (string name = "")
};

2、
A::A (string name = "")
{
this->name = name;
}
改為
A::A (string name)
{
this->name = name;
}
3、
B::B ()
{
;
}
改為
B::B () : A()
{
;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved