2017-01-30 7 views
1

Пожалуйста, скажите мне, как писать определения для функций:как написать определение метода для продукта * getProductFromID (std :: string);

Product* getProductFromID(std::string); 

void Store:: addMember(Customer* c) 

addmember Шуда добавить детали членов вектора имени телега и я попробовал что-то вроде этого

void Store:: addMember(Customer* c) 
{ 
    Customer c(std::string n, std::string a, bool pm); 
    members.push_back(n.str()); 
} 

я получаю ошибку упомянутый [Error] 'n' was not declared in this scope.

+1

Пожалуйста, пост http://stackoverflow.com/help/mcve – Jonas

+0

вас объявлять переменные в качестве параметров для конструктора вашего 'Customer c'. Они должны быть объявлены снаружи и с учетом первоначального значения для хорошей меры. – Jonas

+7

@Jonas Если вы просто набираете MCVE в квадратных скобках, вы получаете красиво отформатированную ссылку: [MCVE]. – BoBTFish

ответ

1

Эта линия

Customer c(std::string n, std::string a, bool pm); 

объявляет функцию c, которая принимает три параметра и возвращает Customer. Не то, что ты хочешь.

Предполагая, что Customer содержит n элемент (который действительно нуждается в более описательное имя), функция будет просто выглядеть

void Store:: addMember(Customer* c) 
{ 
    members.push_back(c->n.str()); 
} 
+0

я сделал как u сказал (а) спасибо за предложение сейчас код 'void Store :: addMember (Customer * c) { members.push_back (c-> name.str()); } и я получаю сообщение об ошибке \t [Error] 'std :: string Customer :: name' is private – user1210000

+0

Я получил его с функцией, через которую я обратился к переменной thankyou @Bo Persson – user1210000