2014-10-16 4 views
-1

Я не уверен, что не так в синтаксисе моего кода, что-то не так с возвратом адреса местоположения указателей firstname и secondname.Синтаксис Ошибка при использовании указателей в C++

string names() 
{ 
    string firstname; 
    string secondname; 

    int *p_firstname = & firstname; 
    int *p_secondname = & secondname; 

    cout << "Enter your first name: "; 
    cin >> firstname; 
    cout << "Enter your second name: "; 
    cin >> secondname; 

    return &p_firstname, &p_secondname; 
} 
+0

Что сообщение об ошибке вы получаете? – Chantola

+1

что такое 'return & p_firstname, & p_secondname;' предполагается делать? –

+0

Сообщение об ошибке 'Ошибка \t \t 4 Ошибка C2664:«станд :: basic_string <голец, СТД :: char_traits , станд :: распределителей > :: basic_string (станд :: initializer_list <_Elem>, Const станд :: Распределитель &) ': невозможно преобразовать аргумент 1 из' int ** 'в' const std :: basic_string , std :: allocator > & '\t c: \ programming \ C++ \ visual studio \ temp \ temp \ main.cpp Temp ' – Coder77

ответ

1

Вы пытаетесь вернуть два указателя int int? как строковый тип?

попробовать

return firstname + secondname; 
2

Попробуйте вернуть две строки с std::pair<std::string, std::string>:

std::pair<std::string, std::string> names() { 
    ... 
    return std::make_pair(firstname, secondname); 
Смежные вопросы