2016-05-18 5 views
0

я создал класс под названием Text, и один из ее членов является std::vector из Pal_freq, struct объявлен внутри class.Объявление структуры в классе

Я получаю эти ошибки:

error: ‘Pal_freq’ does not name a type bool criteri (const Pal_freq& p1, const Pal_freq& p2);

error: ‘Pal_freq’ does not name a type bool criteri (const Pal_freq& p1, const Pal_freq& p2);

error: ‘Pal_freq’ was not declared in this scope vector consultar_taula_freq();

error: template argument 1 is invalid vector consultar_taula_freq();

Вот код:

class Text { 
public: 

    struct Pal_freq { 
    int freq; 
    string pal; 
    }; 

    vector <Pal_freq> taula; 
}; 
+2

[Работы здесь] (https://ideone.com/5OUfd6). Вы забыли «#include » или '#include '? – Rakete1111

+6

Здравствуйте, Pau, чтобы получить лучшую помощь, вы должны включить сообщение об ошибке. «Не работает» не очень-то говорит. – ypnos

+2

ваши сообщения об ошибках не коррелируют с вашим кодом – AnatolyS

ответ

3

Ошибка сообщение не приходит из крошечного куска оды вы показала (определение структуры) , они исходят из других фрагментов кода, которые вы не сделали показать нам (т. е. где вы пытаетесь использовать вложенную структуру).

Поскольку оно указано внутри Text, вам необходимо квалифицировать его имя, когда вы ссылаетесь на него за пределами области Text, поэтому вам нужно обратиться к нему как Text::Pal_freq, например.

bool criteri (const Text::Pal_freq& p1, const Text::Pal_freq& p2); 

Пожалуйста, прочтите «как задать» руководящие принципы на сайте, и убедитесь, что вы включили весь необходимый код для нас, чтобы помочь вам.

+0

Спасибо! bool criteri внутри Text, должен ли я использовать Text :: anyway? – Pau

+0

_ «bool criteri внутри текста» _ Нет, это не так. Не в коде, который вы нам показали. Вот почему мы не можем вам помочь, если вы не зададите более сложные вопросы. Как вы ожидаете, что люди объяснят, почему вы получаете ошибки для 'criteri', если вы не показываете' criteri' ?! Возможно, вам нужно переместить объявление 'Pal_freq' перед функциями-членами, которые пытаются его использовать. Но покажите код, или мы просто догадываемся, и ваш вопрос должен быть закрыт. –