class primes{
private:
vector <int> myvec;
myvec.push_back(2); // <-- this can not be placed here
};
компилятор ожидает там объявление/определение элемента или метод (функция-член). Вы не можете разместить там код, например myvec.push_back(2);
. Это должен быть помещен внутрь корпуса какого-либо метода:
class primes {
private:
std::vector<int> myvec;
public:
void addPrime(int num) {
myvec.push_back(num);
}
};
или в случае, если вы хотите построить экземпляр primes
с vector
, которые уже содержат номер 2:
class primes {
public:
primes() : myvec(std::vector<int>(1, 2)) { }
private:
std::vector<int> myvec;
};
или, если вам нужно заполнить этот вектор с большим количеством из них:
int PRIMES[] = { 1, 2, 3, 5, 7 };
const int PCOUNT = sizeof(PRIMES)/sizeof(PRIMES[0]);
class primes {
public:
primes()
: myvec(std::vector<int>(PRIMES, PRIMES + PCOUNT)) { }
private:
std::vector<int> myvec;
};
'#include'. –
us2012
К сожалению, набрав в моем ответе – user2803001
Ya в сообщении говорится, что «myvec» не называет тип – user2803001