Почему GCC 4.7 жалуется при создании экземпляра класса внутри функции (с указателем)?GCC warning [Wuninitialized]
Плохо:
#include "foo.h"
int fn() {
Foo *foo;
foo->method();
return 0;
}
main.cpp: В функции члена 'INT Foo()': main.cpp: 21: 52: предупреждение: 'Fn' могут быть использованы в этом неинициализированным функция [-Wuninitialized]
Хорошо:
#include "foo.h"
Foo *foo;
int fn() {
foo->method();
return 0;
}
Хорошо:
#include "foo.h"
int fn() {
Foo foo;
foo.method();
return 0;
}
Статические переменные инициализируются значением, поэтому второй фрагмент не вызывает предупреждения. В остальном заберите хорошую книгу о C++. –
Не могли бы вы позаботиться о публикации ошибок точно так же, как сообщается компилятором для точного кода, который вы опубликовали. "main.cpp: В функции-члена 'int foo()': main.cpp: 21: 52: warning: 'fn' может использоваться неинициализированным в этой функции [-Wuninitialized]« Это не имеет смысла, 'foo' is not функция, не говоря уже о функции-члена, и 'fn' не является переменной. –
Похоже, что имена 'foo' и' fn' были отменены в скопированном вами сообщении об ошибке. Либо это, либо сообщения компилятора C++ достигли нового уровня неправильного направления. – user268396