2013-02-09 3 views
0

Таким образом, я не могу скомпилировать мой код так:Метод требует более одного аргумента?

std::vector<std::string> split = split("A String Blah"); 

с этим методом подписи:

std::vector<std::string> split(const std::string& s) 

, потому что он говорит, что требует более одного аргумента. Почему не просто строка?

+1

Какое сообщение об ошибке? –

+0

Ошибка \t \t 1 Ошибка C2660: 'разбить': функция не принимает аргументов 1 \t C: \ Users \ Айдан \ документы \ Visual Studio 2012 \ Projects \ mathhelper \ mathhelper \ mathhelper.cpp \t MathHelper – Tips48

+0

является 'split', вы думаете, что звоните из библиотеки MathHelper? – tacaswell

ответ

6

Когда у вас есть эта строка:

std::vector<std::string> split = split("A String Blah"); 

Компилятор C++ считает, что split упоминается в правой стороне такой же split объявлен на левой стороне. В результате это дает вам ошибку, потому что, действительно, std::vector<std::string> не является функцией, принимающей один аргумент.

Чтобы исправить это, рассмотреть вопрос о переименовании переменного:

std::vector<std::string> theSplit = split("A String Blah"); 

Надеется, что это помогает!