好吧,只是新的類和試圖創建一個簡單的程序,它有2個類。 A類和B類。嗯,我試圖在類A中的構造函數中初始化我的變量,然後做一些動作並將它傳遞給B類,我也可以做一些動作。所以A類是一個基類。然而,當我編譯程序我有兩個錯誤 -C++的構造函數,並將變量傳遞給另一個類
error: ‘i’ was not declared in this scope
對於A類和B類所以,我有兩個問題1)爲什麼構造函數不聲明變量(按稱爲第一書構造函數)? 2)我可以如何將變量從A類傳遞到B類中?
#include <iostream>
#include <cstdio>
using namespace std;
class A {
public:
A(){
int i =1;
}
~A(){}
int foo() {
int p = i+1;
i++;
return p;
}
};
class B : public A {
public:
int showme() {
return i;
}
};
int main() {
A j;
B k;
cout<< k.showme()<<endl;
cout<< j.foo()<<endl;
return 0;
}
那麼我必須在構造函數中聲明什麼呢?我認爲構造函數是聲明變量? –
我可能是錯的,但它聽起來像這也可能有助於指出。在這段代碼中,你聲明瞭一個類A的變量和一個單獨的B類變量。當你將'int i;'作爲A的成員變量添加時,這意味着將會有一個整數j.i和一個不同的整數k.i.我不會稱之爲成員'A :: i'的相當轉移。 –