Я пытаюсь понять что-то на С++. В основном у меня есть это:
class SomeClass {
public:
SomeClass();
private:
int x;
};
SomeClass::SomeClass(){
x = 10;
}
int main() {
SomeClass sc;
return 0;
}
Я думал, что sc является неинициализированной переменной типа SomeClass, но из различных обучающих программ, которые я нашел, похоже, что это объявление на самом деле является инициализацией, вызывающей конструктор SomeClass(), без необходимости называть "sc = new SomeClass ( );" или что-то в этом роде.
Как я пришел из мира С# (и знаю немного C, но не С++), я пытаюсь понять, когда мне нужны такие вещи, как новые, и когда выпустить такие объекты. Я нашел шаблон под названием RAll, который, как представляется, не имеет отношения.
Как называется этот тип инициализации и как я могу узнать, является ли что-то простым объявлением или полной инициализацией?