1樓:匿名使用者
return 0後面沒有分號
void get1()後面用的是中文分號
:birthday後面的括號裡面的引數不要加int,這不是宣告,而是直接使用year,month,day
get1和show1裡面使用了year,month,day,但它們不是people的成員,也無法訪問birthday.year,birthday.month,birthday.
day(因為data裡year,month,day是private的)
data的建構函式date(int year,int month,int day)只宣告瞭卻沒有定義
people沒有宣告預設建構函式,因此people student就會出錯
大概就這些。
c++組合類問題,急
2樓:匿名使用者
#include//c++的輸入輸出流標頭檔案
#include//數學標頭檔案,包含了大部份的數學公式
using namespace std;//引用 名稱空間 std 是標準名稱空間
class point
//建構函式,初始化x y
point(point &p);//過載建構函式,把已有的point拷貝到新的point
int getx() //提取 x的值
int gety() //提取y 的值
private:
int x,y;
拷貝函式的實現
//類的組合
class line
//返回len的值
private:
point p1,p2;
double len;
};//組合類的建構函式
line::line(point xp1,point xp2)
:p1(xp1),p2(xp2)
//組合類的拷貝建構函式
//主函式
int main()
point myp1(1,1),myp2(4,5);
初始化 myp1,myp2
隱性呼叫了 myp1.myp1(1,1)
myp2.myp2(4,5)
line line(myp1,myp2);
初始化 line myp1 myp2 作為建構函式的引數
隱性呼叫 line.lne(myp1,myp2)
line line2(line); 初始化line2
隱性呼叫 line2.lne(line)
把line中的資料拷貝到 line2
cout<<"the length of the line is :";
cout< 先執行 line.getlen() 返回 line的len值 然後輸出 換行 cout<<"the length of the line2 is :"; cout< 同line 3樓:考潤劉原 你雖然在類ca中有一個類cb的指標, 但是,這個指標沒有被初始化啊! 你直接進行 a.callcb(); 程式會執行 b->funa(); 問題是:這個時候的指標 b,並沒有指向任何 cb物件,訪問肯定會出錯的! 我也是初學c 的!說的不對的還請指點!看完你上面的寫的沒太看懂 可能我還沒學到你那一章 不過有一點可以確定的是 aliastomyclass 是 方法 不是 變數名 這有點像 關鍵字 不能用在做 變數名 一樣,方法 可呼叫但也不能用來做變數名。而且很明白的一點 aliastomyclass 不是 變... 如果是虛擬函式的話,在派生類中重新定義其函式體時,不會導致同名覆蓋.當用基類指標指向派生類物件並呼叫虛擬函式時,執行的是在派生類中重新定義的虛擬函式的函式體.虛擬函式必須要在基類用virtual修飾才能為虛擬函式,派生類若重定義該函專數,則無論是否有屬virtual關鍵字都是虛擬函式。你要判斷派生類... void set int i,int j 不是建構函式啊。換成b int i,int j 實現的時候也是b b int i,int j a i a i 是負責呼叫基類建構函式來初始化基類資料成員的。在建構函式的時候這麼寫格式才對吧。你在成員函式那裡調基類的建構函式格式是不對的吧。同學習中,說的不對別...C 的一些問題 C 呼叫C 類的疑問
關於c派生類中虛擬函式的問題,C 已經在派生類中重定義了抽象類中的純虛擬函式,為什麼還不讓我用派生類定義物件!?
C類的疑問