Инициализация базового класса
От: DangerDen  
Дата: 27.07.04 16:33
Оценка:
Есть класс B — он наследник класса А. У класса А нет конструктора по умолчанию. Как мне инициализировать класс А при создании класса В в его конструкторе, причем собрав определенную инфу(выполнив пару операторов)?

class B: public class A
{
B( std::string& str ): A( /*а вот здесь мне и надо впихнуть парочку операторов, возможно переменную временную*/ ){}
{}
}
Re: Инициализация базового класса
От: rus blood Россия  
Дата: 27.07.04 16:42
Оценка:
Здравствуйте, DangerDen, Вы писали:

DD>Есть класс B — он наследник класса А. У класса А нет конструктора по умолчанию. Как мне инициализировать класс А при создании класса В в его конструкторе, причем собрав определенную инфу(выполнив пару операторов)?


DD>
DD>class B: public class A
DD>{
DD>B( std::string& str ): A( /*а вот здесь мне и надо впихнуть парочку операторов, возможно переменную временную*/ ){}
DD>{}
DD>}
DD>


1. Добавить в A конструктор с параметрами.
2. Инициализировать поля базового класса в конструкторе B
Имею скафандр — готов путешествовать!
Re: Инициализация базового класса
От: jazzer Россия Skype: enerjazzer
Дата: 27.07.04 16:43
Оценка:
Здравствуйте, DangerDen, Вы писали:

DD>Есть класс B — он наследник класса А. У класса А нет конструктора по умолчанию. Как мне инициализировать класс А при создании класса В в его конструкторе, причем собрав определенную инфу(выполнив пару операторов)?


DD>
DD>class B: public class A
DD>{
DD>B( std::string& str ): A( /*а вот здесь мне и надо впихнуть парочку операторов, возможно переменную временную*/ ){}
DD>{}
DD>}
DD>


ну так впихни, в чем проблема?

а вообще, информации маловато: какой у А конструктор? Что хочется закинуть?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Инициализация базового класса
От: DangerDen  
Дата: 27.07.04 16:46
Оценка:
Здравствуйте, jazzer, Вы писали:

J>ну так впихни, в чем проблема?


J>а вообще, информации маловато: какой у А конструктор? Что хочется закинуть?


Дык не получается — А — базовый класс который я не могу менять (он из STL'ки)
Re[3]: Инициализация базового класса
От: jazzer Россия Skype: enerjazzer
Дата: 27.07.04 16:49
Оценка:
Здравствуйте, DangerDen, Вы писали:

DD>Здравствуйте, jazzer, Вы писали:


J>>ну так впихни, в чем проблема?


J>>а вообще, информации маловато: какой у А конструктор? Что хочется закинуть?


DD>Дык не получается — А — базовый класс который я не могу менять (он из STL'ки)


@#$@!
Ну что, инфу будем в час по чайной ложке давать?

Что за класс?
Какие у него конструкторы?
Что хочется закинуть?
И что не получается? Описать проблему четко и понятно?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Инициализация базового класса
От: DangerDen  
Дата: 27.07.04 16:53
Оценка:
Здравствуйте, jazzer, Вы писали:

J>@#$@!

J>Ну что, инфу будем в час по чайной ложке давать?

J>Что за класс?

runtime_error
J>Какие у него конструкторы?
строкой я его хочу конструировать
J>Что хочется закинуть?
строку
J>И что не получается? Описать проблему четко и понятно?
не компилиться


B(const &string MyStr) : A( strcat(TempStr, MyStr)) {}


вот что то типа э
того хочется — но я не могу там объявить TempStr
Re[5]: Инициализация базового класса
От: jazzer Россия Skype: enerjazzer
Дата: 27.07.04 16:59
Оценка:
Здравствуйте, DangerDen, Вы писали:

DD>Здравствуйте, jazzer, Вы писали:


J>>@#$@!

J>>Ну что, инфу будем в час по чайной ложке давать?

J>>Что за класс?

DD>runtime_error
J>>Какие у него конструкторы?
DD>строкой я его хочу конструировать
J>>Что хочется закинуть?
DD>строку
J>>И что не получается? Описать проблему четко и понятно?
DD>не компилиться :))


DD>
DD>B(const &string MyStr) : A( strcat(TempStr, MyStr)) {}
DD>


DD>вот что то типа э

DD>того хочется — но я не могу там объявить TempStr

а что за TempStr? Откуда он берется? Когда он инициализируется?
нельзя ли использовать просто временный объект std::string()?

у runtime_error есть конструктор от стринга
так что если тебе нужно просто просунуть MyStr в него, пиши

class B: public class std::runtime_error
{
   B( std::string& str ): std::runtime_error( std::string("xxx") + str ) {}
}
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Инициализация базового класса
От: DangerDen  
Дата: 27.07.04 17:02
Оценка:
Здравствуйте, jazzer, Вы писали:

J>
J>class B: public class std::runtime_error
J>{
J>   B( std::string& str ): std::runtime_error( std::string("xxx") + str ) {}
J>}
J>


да-да-да

я именно это и спрашивал....
спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.