2017-11-26 15 views
-3

私は約2年前にWalter SavitchのAbsolute C++(第5版)を学びました。この本の中で派生クラスを宣言するための方法があること、親クラスであるC++で派生クラスを定義する方法は?

class ChildClass:Public ParentClass{...} 

class ParentClass 
{Public: 
double getVariable() const; 
...} 

この本はまた、私はメンバーの定義を変更しない場合は、と言うようなもの私は派生クラスを宣言するとき、親クラスの関数を使用するため、派生クラス宣言で書き直す必要はありません。たとえば、ParentClassというメンバ変数を評価するdouble ParentClass::getVariable() constの定義を変更しない場合は、派生クラスChildClassの宣言に明示的に書き戻す必要はありません。

最近、私はプロジェクトを完成させたいと思っていました。まず、派生クラスの宣言は、あなたがそうでなければ、ParentClassの前でPublicを挿入してはならない

class ChildClass:ParentClass{...} 

のようになります、コンパイラは文句を言います。第二に、私は、次のコード

childInstanceChildClassのインスタンスである
childInstance.getVariable() 

メインプログラムに機能double ParentClass::getVariable() constにアクセスすることはできません。

これらは私が見つけた2つの変化です。派生クラスを正しい方法で定義する方法を教えてください。ありがとうございました!

ところで、使用しているコンパイラはCygwin上でgcc 5.4.0です。

+4

[これらの書籍](https://stackoverflow.com/q/388242)のいずれかを好きで、持ち物をビンに投げ入れるべきです。 – user0042

+2

'Public'は' public'と非常に異なるものです。 1つは間違っており、もう1つは正しいです。 –

+2

そして、C++は大文字と小文字を区別する言語であることに注意してください。 'public'は' public'と同じではありません。 – user0042

答えて

0

Publicは、C++では特別なものではありません。

publicと書いてください。

構文の強調表示でもエラーが表示されます。

は、この例を参照してください:あなたは正しいキーワードに適応してきた

if else for while public 
Am Tree Hat House Public 
        ^~~~~~ 

した後、これ以上の問題があってはなりません。デフォルトでは約classprivateです。

関連する問題