Size: a a a

2021 February 28

DK

David Kravets in supapro.cxx
Aidar Fattakhov
Ну какой-то конструктор А (родителя) ты должен вызвать
Там если удалять то тогда нельзя объявлять объект класса в В
источник

AF

Aidar Fattakhov in supapro.cxx
?
источник

DK

David Kravets in supapro.cxx
struct A{
 std::string path;
 A(){
   std::cout << "constructor base" << std::endl;
 }
 A(const std::string& val){
   this->path = val;
   std::cout << "constructor string" << std::endl;
 }
};
struct B : public A {
 A a;
 B() : a("123"){
   std::cout << a.path << std::endl;
 }
};
int main() {
 B b;
 return 0;
}
/*
stdout:
constructor base
constructor string
123
*/
источник

C

CodeDetector in supapro.cxx
David Kravets
struct A{
 std::string path;
 A(){
   std::cout << "constructor base" << std::endl;
 }
 A(const std::string& val){
   this->path = val;
   std::cout << "constructor string" << std::endl;
 }
};
struct B : public A {
 A a;
 B() : a("123"){
   std::cout << a.path << std::endl;
 }
};
int main() {
 B b;
 return 0;
}
/*
stdout:
constructor base
constructor string
123
*/
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
источник

LA

Liber Azerate in supapro.cxx
David Kravets
Там если удалять то тогда нельзя объявлять объект класса в В
Лол
источник

DK

David Kravets in supapro.cxx
Эт код оригинал
источник

AF

Aidar Fattakhov in supapro.cxx
David Kravets
Там если удалять то тогда нельзя объявлять объект класса в В
Ты типа хочешь сказать что я ссылки вобще не могу полем объявлять?
источник

LA

Liber Azerate in supapro.cxx

class B {

public:
B() = delete;
};

extern B b;
источник

LA

Liber Azerate in supapro.cxx
David Kravets
Там если удалять то тогда нельзя объявлять объект класса в В
Объявлено, наслаждайся
источник

DK

David Kravets in supapro.cxx
Liber Azerate

class B {

public:
B() = delete;
};

extern B b;
Тут вообще то про другое идёт ..
источник

AF

Aidar Fattakhov in supapro.cxx
David Kravets
struct A{
 std::string path;
 A(){
   std::cout << "constructor base" << std::endl;
 }
 A(const std::string& val){
   this->path = val;
   std::cout << "constructor string" << std::endl;
 }
};
struct B : public A {
 A a;
 B() : a("123"){
   std::cout << a.path << std::endl;
 }
};
int main() {
 B b;
 return 0;
}
/*
stdout:
constructor base
constructor string
123
*/
Ну тут 2 разных А в B
источник

LA

Liber Azerate in supapro.cxx
David Kravets
Тут вообще то про другое идёт ..
Да, про то, что ты не знаешь разницы между объявлением и определением, видимо
источник

AF

Aidar Fattakhov in supapro.cxx
Поэтому и 2 конструктора вызвалось
источник

DK

David Kravets in supapro.cxx
Aidar Fattakhov
Поэтому и 2 конструктора вызвалось
Согласен
источник

DK

David Kravets in supapro.cxx
Aidar Fattakhov
Поэтому и 2 конструктора вызвалось
Так удал. Конструктор без параметров
источник

AF

Aidar Fattakhov in supapro.cxx
struct A{
 std::string path;
 A(){
   std::cout << "constructor base" << std::endl;
 }
 A(const std::string& val){
   this->path = val;
   std::cout << "constructor string" << std::endl;
 }
};
struct B : public A {
 A a;
 B() : A("ABC"), a("123"){
   std::cout << a.path << std::endl;
 }
};
int main() {
 B b;
 return 0;
}
/*
stdout:
constructor string
ABC
constructor string
123
*/
источник

DK

David Kravets in supapro.cxx
Выйдет ошибка
источник

DK

David Kravets in supapro.cxx
Aidar Fattakhov
struct A{
 std::string path;
 A(){
   std::cout << "constructor base" << std::endl;
 }
 A(const std::string& val){
   this->path = val;
   std::cout << "constructor string" << std::endl;
 }
};
struct B : public A {
 A a;
 B() : A("ABC"), a("123"){
   std::cout << a.path << std::endl;
 }
};
int main() {
 B b;
 return 0;
}
/*
stdout:
constructor string
ABC
constructor string
123
*/
Да, тут все правильно
источник

LA

Liber Azerate in supapro.cxx
David Kravets
Да, тут все правильно
Да, правильно, таким и должен был выглядеть правильный совет, а не "удалить конструктор"
источник

DK

David Kravets in supapro.cxx
Liber Azerate
Да, правильно, таким и должен был выглядеть правильный совет, а не "удалить конструктор"
где правильно ?
источник