Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
#1

Как вызвать другой констуктор из конструктора? - C++

13.03.2012, 18:39. Просмотров 1082. Ответов 4
Метки нет (Все метки)

У меня есть класс, конструктор которого принимает как char * , так и std::string. Эту строку надо довольно долго обрабатывать и со std::string это делать гораздо проще. Вот хочется, чтобы конструктор принимающий char *, вызывал конструктор, которому требуется std::string.
Какие есть варианты, кроме создания отдельных методов инициализации?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 18:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вызвать другой констуктор из конструктора? (C++):

Вызвать абстрактный метод из конструктора - C++
Компилятор не разрешает вызвать с конструктора виртуальный метод. Почему? Я же не собираюсб создавать по этому констрктору обьект. Мне...

Как вызвать из 1 функции параметры другой? - C++
Всем привет! Собственно, вопрос в названии. Хочу написать 2 функции: первая отводит память под массив, а вторая этот массив...

Как вызвать Main из другой функции? - C++
собственно в этом то и вся проблема(( Не знаю как вызвать Main из другой функции.... Может кто помочь??

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать? - C++
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...

Как вызвать другой конструктор для уже созданного объекта конструктором по умолчанию? - C++
Есть класс в котором несколько конструкторов, Мне в некоторых местах нужно создавать объекты класса с конструктором по умолчанию для...

Как в методе класса вызвать другой метод того же класса? - C++
class mate { public: int AplusB(int A, int B) { return A+B; } int AplusBplusC(int A, int B, int C)

4
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.03.2012, 18:49 #2
Просто
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
class obj
{
   std::string s;
public:
   obj(char* _s): s(std::string(_s)) 
   {
   
   }
   void show()
   { 
      std::cout << s << std::endl; 
   }
};
 
int main()
{
   obj o("Hello, world!");
   o.show();
}
http://liveworkspace.org/code/531ac52289d4dc9cf63bc2954a80c014
1
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
13.03.2012, 19:00  [ТС] #3
Спасибо, но как это избавляет от копипаста тела одного метода в другой?
Предположим класс хочет расширить свое применение и принимает тип string, в таком случае как вы модифицируете этот класс? Тот способ, который вы предложили всего лишь инициализирует поле _s и всего-то
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2012, 19:03 #4
Новый стандарт вводит делегирующие конструкторы. В версии 4.7 GCC, если верить табличке на их сайте, они уже есть
1
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.03.2012, 19:05 #5
Цитата Сообщение от Buckstabue Посмотреть сообщение
Вот хочется, чтобы конструктор принимающий char *, вызывал конструктор
Стандарт C++ 2003 года не допускает вызова одних конструкторов класса из других конструкторов этого же класса. Каждый конструктор должен полностью инициализировать все члены класса либо вызывать для этого методы класса.
1
13.03.2012, 19:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 19:05
Привет! Вот еще темы с ответами:

Есть функция с кучей аргументов, как её вызвать в другой функции (если половины аргументов у меня нет)? - C++
Я конечно, понимаю, что на такие вопросы отвечают &quot;почитай книжку&quot;. Я читала, честное слово:) Конкретно. Есть функция void jacobi (...

Вызвать функцию внутри другой функции - C++
Как использовать функцию внутри другой функции? struct AJ { char stroka; }; class AK { AJ a;

можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать? - C++
можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это...

Вызвать функцию из другой функции.Работа с мышью[Из подменю в меню. Консоль] - C++
Добрый день, пишу курсовую работу, у меня есть несколько функций, например: Главное меню: Играть (пользователь заходит сюда и попадает в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru