В C++ вы бы избежать обнаженный новый и либо создать общий/уникальный указатель с std::make_shared/std::make_unique в C++ 11/14 или инкапсулировать распределение в руко-классе после RAII идиомы.
Чтобы дать пример того, как это будет работать:
class Foo {
const int i;
public:
int j;
Foo(int i) : i{i}, j{0} {}//constructor
void foo() {std::cout << i << "\n";}
};
int main() {
unique_ptr<Foo> fp = make_unique<Foo>(5);
fp->foo();
return 0;
}
В случае конструктор выглядит немного запутанным для вас, краткое объяснение: двоеточие после подписи конструкторов начинается декларация инициализации. В этом разделе вы должны инициализировать const-значения, но вы можете инициализировать все значения там. Таким образом, конструкторы, которые принимают аргументы часто выглядят следующим образом:
Foo(ArgType1 arg1, ArgType2 arg2,...,ArgTypeN argN) :
member1(arg1), member2(arg2), ... , memberN(argN) {//empty body}
Обязательно обратите внимание на rule of three/five, при написании конструкторов.
Это позволит получить много личного мнения. Я лично считаю, что C-путь лучше всего в коде на C++. –
@EugeneK: Личное мнение на самом деле не приходит в это дело. Для подавляющего большинства типов C++ ваш «C-путь» - _wrong_. Я не просто имею в виду плохой совет, или плохой стиль. Я имею в виду _wrong_. Разбитый. –
, если вы не используете некоторую библиотеку низкого уровня, никогда не вводите новый – sp2danny