2013-06-28 4 views
0

Я очень новичок в программировании на C++, и я написал простую программу классов для отображения имени и продолжительности проекта.установить и получить значение различных членов класса в классе

#include<iostream> 
class project 
{ 

public: 
std::string name; 
int duration; 
}; 

int main() 
{ 
project thesis; // object creation of type class 
thesis.name = "smart camera"; //object accessing the data members of its class 
thesis.duration= 6; 

std::cout << " the name of the thesis is" << thesis.name << ; 
std::cout << " the duration of thesis in months is" << thesis.duration; 
return 0; 

Но теперь мне нужно запрограммировать ту же парадигму с функциями get и set member класса. Мне нужно запрограммировать несколько как

#include<iostream.h> 

class project 
{ 

std::string name; 
int duration; 

void setName (int name1); // member functions set 
void setDuration(string duration1); 

}; 

void project::setName(int name1) 

{ 

name = name1; 

} 


void project::setDuration(string duration1); 

duration=duration1; 

} 

// main function 

int main() 
{ 
project thesis; // object creation of type class 

thesis.setName ("smart camera"); 
theis.setDuration(6.0); 


//print the name and duration 


return 0; 

} 

Я не уверен, правильно ли выше код логики, может кто-то пожалуйста, помогите мне, как поступить с ним. Спасибо большое

+0

Я считаю, что вы сделали это правильно. – 0x499602D2

+0

Выглядит хорошо, хотя было бы неплохо, если бы вы отделили свой код. Многие люди используют m_ в качестве префикса для данных членов в C++. Тогда вы можете использовать имя, а не имя1 и т. Д. – Bathsheba

+0

Но как напечатать имя и продолжительность в основной функции. мне нужно напечатать 'std :: cout <<", название тезиса - "<< thesis.name <<;'? не могли бы вы помочь мне на этом – user2532387

ответ

1

Вы написали некоторые функции набора. Теперь вам нужно получить некоторые функции.

int project::getName() 
{ 
    return name; 
} 

std::string project::getDuration() 
{ 
    return duration; 
} 

Поскольку данные теперь являются частными, вы не можете получить к нему доступ из-за пределов класса. Но вы можете использовать свои функции get в своей основной функции.

std::cout << " the name of the thesis is" << thesis.getName() << '\n'; 
std::cout << " the duration of the thesis is" << thesis.getDuration() << '\n'; 
+0

за вашу помощь. не могли бы вы обновить его полную программу. так что я пойму более ясно. – user2532387

+0

Добавьте методы внутри определения класса. Добавьте вызов std :: cout вместо комментария "// напечатайте имя и продолжительность" – doctorlove