2016-03-31 8 views
-1

私の質問を見る時間をとってくれてありがとう!プログラムに新しいオブジェクトを作成させる方法

今はクラスとオブジェクトを扱っています。訪問者に関する情報をホテルに保存するプログラムを作成しようとしています。ユーザーは訪問者の名前とその情報を入力します。プログラムはその情報をオブジェクトに格納し、ユーザーが滞在するためにどれくらい料金を請求するかを計算することができます。

私が遭遇している問題は、プログラムに訪問者用の新しいオブジェクトを作成させる方法がわからないということです。たとえば、Sallyが入った場合、彼女の情報を保存できるプログラム内に新しいオブジェクトを作成したいと考えています。

私は動的オブジェクトの作成を見て、かなりの量のグーグルを対象にしましたが、回答が見つからないようです。ここで私がやりたいものの簡易版である:

#include "stdafx.h" 
#include <iostream> 
#include <string> 

using namespace std; 

class visitor { 
public: 
    string name; 
    int age; 
}; 

int main() 
{ 
//a new person comes to the hotel, the person at the desk gives the program his/her name 
//and age and it is put into a class so it can be used later. 
} 

を私は私は、提案が大好きだこれを達成するためのより良い方法が、駆け出しのプログラマがある場合は、私がこれに近づいていますいる可能性が高いです間違って

ありがとうございます!

+0

この質問は、Matrixの引用のようなものです。 – SergeyA

+0

ようこそStackoverflowへ!明らかに、C++の基礎を学ぶことが必要です。あなたにそれらを教えることは、このサイトの目的と範囲を超えていますが、確かにあなたを助けることができる[The Definitive C++ Book Guide and List](http://stackoverflow.com/q/388242/1362568)があります。 –

答えて

0

コンストラクタを作成する必要があります。これは訪問者を構成する関数です。 (その通常の規則は、クラス名の最初の文字を大文字にすることに注意してください)

class Visitor { 
    public: 
     string name; 
     int age; 
     Visitor(string name, int age) { 
      this->name = name; 
      this->age = age; 
     } 
}; 

私たちは、次の新しいビジターオブジェクトを作成することができます:私たちは、次のようにすることを書く

Visitor sally = Visitor("Sally", 22); 

ができるようにするにはユーザーが名前と年齢を入力する必要がある場合は、Getting user input in C++のような別のSOの回答を見てください。

EDIT:あなたはこのケースでは、デフォルトで1になりますコンパイラとしてコンストラクタを作成するを必要としないんが、あなたは当分の間、独自のコンストラクタを作成することによって学習することが有用であろう、あなたは何が起こっているのか知っています。

+0

ありがとう!私は今、私の質問が広すぎるか基本的であったかもしれないことを認識しています。しかし、これは私の質問に非常によく答えます。ほんとうにありがとう。 –

0

これまでのところ、うまくいきました。

class visitor { 
public: 
    string name; 
    int age; 
}; 

int main() 
{ 
    //a new person comes to the hotel, the person at the desk 
    //gives the program his/her name 
    //and age and it is put into a class so it can be used later. 
} 

今では整数値iを定義し、0で初期化することがいかに簡単であるか覚えている:

int i = 0; 

あなたのクラスは、単に「INT」のようなものです。 intのように宣言された変数に名前を付けます。

visitor guest1; 

コンテンツを初期化するには、デフォルトのctorを記述する必要があります。コードには、コンパイラによって提供されるデフォルトのctorがあります。しかし、それは(何もしない)非常に有用ではありません。

そして、デフォルト以外のctorを書き込んで内容を記入してください。

など、など。

値を表示するshowメソッドはいかがですか。

guest1.show(); 

幸運。

関連する問題