public:
A();
A(int B){*C = B - 1;};
private:
int *C;
Я считаю, что это правильно назвать два конструктора по умолчанию, но визуальная студия дает мне ошибки. Что не так с этим кодом?, определяющий встроенный конструктор по умолчанию C++
public:
A();
A(int B){*C = B - 1;};
private:
int *C;
Я считаю, что это правильно назвать два конструктора по умолчанию, но визуальная студия дает мне ошибки. Что не так с этим кодом?, определяющий встроенный конструктор по умолчанию C++
Один конструктор действительно является конструктором по умолчанию. Однако другой «конструктор» должен работать как деструктор, так как обычно он будет обращаться к недоступной памяти, которая, как правило, «сбой» программы. Вы должны посмотреть «список инициализаторов членов».
Это компилируется. Как он отличается от вашей программы?
class A {
public:
A() {} // Define (not merely declare) default constructor
A(int B) { C = B - 1; } // Note: don't use uninitialized pointer
private:
int C; // Note: not a pointer
};
Каковы ошибки? У вас не должно быть ';' после '}' функции. –
Какая у вас ошибка? Вы должны быть более конкретными, если вы ожидаете от нас помощи. Плюс добавьте {} рядом с конструктором, который не принимает аргументов, так как у него нет определения. – fdh
Вы, по крайней мере, не хватает 'class A {' и '};'. Пожалуйста, опубликуйте полную минимальную программу и сообщения об ошибках, которые она производит. http://sscce.org/. –