2013-02-22 2 views
0

Я просто кодировал базовый C++, и я создал конструктор внутри класса. Конструктор предназначен для печати имени, указанного в функции main(), но по какой-то причине, когда я его запускаю, ничего не происходит. Это не очень большая проблема, но я хотел бы узнать, почему это не работает, поэтому я знаю, что делать дальше!C++ Basic Constructor не печатает текст

Код:

#include <iostream> 
#include <string> 

using namespace std; 

class ClassOne{ 
public: 
    ClassOne(string z){ 
     setName(z); 
    } 
    void setName(string x){ 
     name = x; 
    } 
    string getName(){ 
     return name; 
    } 

private: 
    string name; 

}; 

int main() 
{ 
ClassOne classOneObject("Hello World"); 
cout << classOneObject.getName(); 
return 0; 
} 
+0

Maby вам нужно очистить: cout << classOneObject.getName() << endl; – hetepeperfan

+0

Как вызов конструктору должен что-то печатать? Это не должно быть в коде, который вы указали. – juanchopanza

+0

Нет, еще ничего. –

ответ

2

Какой компилятор/версию вы используете? Попробуйте изменить свой код на:

cout << classOneObject.getName() << endl; 

Что происходит? (Если это работает сейчас, причина в том, что вы не сбросили cout.)

+0

Я использую Code :: Blocks 12.11, а компилятор называется «GNU GCC Compiler» –

+0

Я попробовал то, что вы сказали, и он все равно ничего не делает. –

+0

OP утверждает, что конструктор предназначен для распечатки чего-либо, что действительно не должно соответствовать опубликованному образцу кода. – juanchopanza

1
ClassOne classOneObject fo("Hello World"); 
cout << fo.getName();