2017-04-25 1 views
-1

誰かが次の点を修正するのを手伝ってください。私は新しいオブジェクト内の既存のオブジェクトへのポインタを作成する方法を頭の中で包み込むことを試みています。私は正しい構文を取得することはできませんし、エラーを取得し続ける。ここでクラス内の別のオブジェクトへのポインタの作成

は私のコードです:

class Country 
{ 
    string name; 
public: 
    Country (string name) 
    { name = name; 
     cout << "Country has been created" << endl;} 

    ~Country() 
    {cout << "Country destroyed \n";} 

}; 

class Person 
{ 
    //string name; 
    //Date dateOfBirth; 
    Country *pCountry; 

public: 
    Person(Country *c): 
     pCountry(c) 
     {} 

}; 




int main() 
{ 
    Country US("United States"); 
    Person(&US) 

    return 0; 
} 
+1

あなたはあなたが得たエラーを含むように投稿を編集できますか? –

+4

停止して、息を飲んで、このlooks.name = name; – user4581301

+0

の名前を忘れてしまいました。あなたの人の変数の名前がなくなっていますし、その宣言に続いてセミコロンがあります。 – jdunlop

答えて

2

あなたのmain.cppにして忘れていましたか?

また、あなたのメインの中にセミコロンが必要
#include <string> 
#include <iostream> 
using namespace std; 

int main() 
{ 
    Country US("United States"); 
    Person person(&US); // < -- variable name and semicolon missing 

    return 0; 
} 

ます。また、変更する必要があります。

Country (string name) 
{ 
    this->name = name; // <-- assign name to member variable 
    ... 

以上を、member initializer listsを使用します。

Country (string name) : name(name) // <-- assign name to member variable 
{ 
    ... 

とであなたは一般的にあなたのコードを書式設定する方法と一貫性があるようにしてください。

関連する問題