Добрый день, господа)
У меня просто странная проблема при программировании на c ++ с использованием Code :: Blocks 10.05, FreeBSD 9.1
Источник в lib.cpp:
class A{
public:
A();
A(var1, var2);
};
A::A(){ imlementation }
A::A(va1, var2) {implementation }
class B : public A{
public:
B();
B(var1, var2);
};
B::B() : A() {} // this is Astr#
B::B(var1, var2) : A(var1, var2) {} // this is Bstr#
Источник в lib.h:
class A{
public:
A();
A(var1, var2);
};
class B : public A{
public:
B();
B(var1, var2);
};
Источник в main.cpp:
#include "lib.h"...
int main(){
...
B* Bptr = new B();
B* Bptr2 = new B(var1, var2);
...
}
И я получаю эти предупреждения сборки:
.../lib.cpp||In constructor 'B::B(var1, var2)':
.../lib.cpp|Bstr#|warning: will never be executed
.../lib.cpp||In constructor 'B::B(var1, var2)':
.../lib.cpp|Bstr#|warning: will never be executed
.../lib.cpp||In constructor 'B::B()':
.../lib.cpp|Astr#|warning: will never be executed
.../lib.cpp||In constructor 'B::B()':
.../lib.cpp|Astr#|warning: will never be executed
||=== Build finished: 0 errors, 4 warnings ===|
Это предупреждение появляется только в режиме отладки, сборка релиза идет нормально.
Код строится и работает нормально, но что я делаю не так?
Конструктор B(var1,var2)
в lib.h является приватным.
предупреждение: никогда не будет выполнено
предупреждение GCC, которое может быть включено с -Wunreachable-code
, -Wunreachable-code
очень ненадежен и не должен использоваться; по этой причине весь вариант был удален в более новых версиях GCC. (На самом деле, не удаляется полностью: опция командной строки -Wunreachable-code
все еще там, но больше ничего не делает.)