2015-01-13 3 views
-3

Я получаю это предупреждение и повторяется во всей сборке.
Предупреждение от ниже логики кода: Номер строки 6предупреждение # 1011: отсутствующий оператор возврата в конце функции non-void

class sample 
{ 
private:                //1 
    // Private so that it can not be called       //2 
    sample();               //3 
    sample(sample const&);            //4 
    // Assigning copy constructor with default constructor    //5 
    sample& operator= (sample const&){};        //6 
    //                 //7 
    static sample *m_Instancesample;         //8 
    static bool m_binstanceFlagsample;         //9 
public:                //10 
    static sample *getInstance();          //11 
    ~sample();               //12 
    void dummy(); 
}; 
+1

удалите '' {} в конце объявления. – Michael

+2

Ваш комментарий для оператора присваивания (который не является конструктором) имеет очень мало смысла. – molbdnilo

+0

Его одноэлементный класс, и я не хочу, чтобы оператор = был перегружен. Поэтому я помещал эту функцию в пустую функцию –

ответ

3

Ваш sample& operator= (sample const&){}; определил тип возвращаемого значения, но вы не что-нибудь вернуться. Либо реализовать функцию или удалить {}

1
sample& operator= (sample const&){}; 
           ^^ 

{} часть определяет функцию с пустым телом — определение отсутствует возвратное заявление.

Либо определите функцию правильно ИЛИ удалите {} (i) объявите функцию и определите ее в другом месте).

+0

Я удалил {} и запустил этот код в своей системе и выполнил его без предупреждения. Но я думаю о какой-то другой платформе, если я запустил ее, это снова даст это предупреждение. –

+0

@NilaySrivastava: Если вы удалите '{} ', то ваш код будет идеальным. – Nawaz

0

Заменено, как показано ниже:

sample& operator= (sample const&){}; 

С:

const sample& operator= (sample const& sampleInstance) 
    { 
     //Get the instance of your sample class as it is singleton you will get the same instance 
     return *sample::getInstance(); 
    }; 
+0

Почему? Вам было поручено оставить «{}'. Теперь у вас есть несколько строк кода, которые никогда не могут быть вызваны. Совершенно бессмысленно. –

Смежные вопросы