錯誤7:類成員變量的初始化
C#中的初始化與C++中不同。假設(shè)有一個帶有private性質(zhì)的成員變量age的Person類,Employee是由繼承Person類而生成的,它有一個private性質(zhì)的salaryLevel成員變量。在C++中,我們可以在Employee的構(gòu)造器的初始化部分初始化salaryLevel,如下面的代碼所示:
Employee::Employee(int theAge, int theSalaryLevel):
Person(theAge) // 初始化基礎(chǔ)類
salaryLevel(theSalaryLevel) // 初始化成員變量
{
// 構(gòu)造器的代碼
}
這種方法在C#中是非法的。盡管仍然可以初始化基礎(chǔ)類,但象上面的代碼那樣對成員變量初始化就會引起編譯錯誤。在C#中,我們可以在定義成員變量時的同時對它進行初始化:
Class Employee : public Person
{
// 成員變量的定義
private salaryLevel = 3; // 初始化
}
注意:必須明確地定義每個變量的訪問權(quán)限。
C#中的初始化與C++中不同。假設(shè)有一個帶有private性質(zhì)的成員變量age的Person類,Employee是由繼承Person類而生成的,它有一個private性質(zhì)的salaryLevel成員變量。在C++中,我們可以在Employee的構(gòu)造器的初始化部分初始化salaryLevel,如下面的代碼所示:
Employee::Employee(int theAge, int theSalaryLevel):
Person(theAge) // 初始化基礎(chǔ)類
salaryLevel(theSalaryLevel) // 初始化成員變量
{
// 構(gòu)造器的代碼
}
這種方法在C#中是非法的。盡管仍然可以初始化基礎(chǔ)類,但象上面的代碼那樣對成員變量初始化就會引起編譯錯誤。在C#中,我們可以在定義成員變量時的同時對它進行初始化:
Class Employee : public Person
{
// 成員變量的定義
private salaryLevel = 3; // 初始化
}
注意:必須明確地定義每個變量的訪問權(quán)限。