|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2010, 16:28 | #1 |
Пользователь
Регистрация: 21.06.2010
Сообщений: 30
|
Автоматическое преобразование на основе первого аргумента конструктора в вызов самого конструктора
Всего доброго время суток, при написании столкнулся ст такой ошибкой, бьюсь и не знаю как ее исправить. Нужно написать программу, которая делает автоматическое преобразование на основе типа первого аргумента конструктора в вызов самого конструктора:
Код:
Error 1 error C2374: 'ob1' : redefinition; multiple initialization c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p421\p421 \p421.cpp 19 p421 Error 2 error C2374: 'ob1' : redefinition; multiple initialization c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p421\p421 \p421.cpp 20 p421 Как ее исправить? Заранее огромное спасибо. Последний раз редактировалось Stilet; 02.10.2010 в 16:58. |
02.10.2010, 16:38 | #2 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Код:
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
02.10.2010, 16:50 | #3 |
Пользователь
Регистрация: 21.06.2010
Сообщений: 30
|
Огромное спасибо!!!
Еще вопрос, а как запретить эти преобразования: #include <iostream> #include <cstdlib> using namespace std; class myclass { int a; public: explicit myclass (int x) {a = x;} explicit myclass (char *str) {a = atoi(str);} int geta() {return a;} }; int main() { myclass ob1 = 4; myclass ob2 = "123"; cout << "ob1: " << ob1.geta() << endl; cout << "ob2: " << ob2.geta() << endl; return 0; } компилятор выдает ошибку: Error 1 error C2440: 'initializing' : cannot convert from 'int' to 'myclass' c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p422\p422 \p422.cpp 13 p422 Error 2 error C2440: 'initializing' : cannot convert from 'const char [4]' to 'myclass' c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p422\p422 \p422.cpp 14 p422 Последний раз редактировалось Stilet; 02.10.2010 в 23:18. |
02.10.2010, 19:40 | #4 |
пыжашийся нуб
Пользователь
Регистрация: 19.06.2010
Сообщений: 93
|
|
02.10.2010, 20:00 | #5 | ||
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2coinkrsk
а ты сам подумай Код:
2jennya Цитата:
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
||
02.10.2010, 21:25 | #6 |
Пользователь
Регистрация: 21.06.2010
Сообщений: 30
|
Автоматическое преобразование на основе первого аргумента конструктора в вызов самого конструктора
Спасибо всем:
|
03.10.2010, 07:58 | #7 |
пыжашийся нуб
Пользователь
Регистрация: 19.06.2010
Сообщений: 93
|
2proger
Это я к тому, что указывать константность, с точки зрения языка, совершенно не обязательно. |
03.10.2010, 14:57 | #8 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2coinkrsk
нормальный компилятор должен на такое ругаться. как и на char *s = "123";
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
03.10.2010, 19:03 | #9 |
пыжашийся нуб
Пользователь
Регистрация: 19.06.2010
Сообщений: 93
|
Наверное вы правы. А вообще, если чесно, я слабо представляю себе ситуацию когда строго определенный конструктор(пусть и перегруженный) может понадобиться запускать обсуждаемым здесь образом.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Повторный вызов конструктора класса | EUGY | Общие вопросы C/C++ | 13 | 28.09.2010 16:00 |
Вызов конструктора суперкласса | Golovastik | PHP | 1 | 04.07.2010 00:35 |
Создание конструктора | Superlotles | Общие вопросы C/C++ | 5 | 23.05.2010 01:38 |
Вопрос про new и вызов конструктора | Gtx541 | Общие вопросы C/C++ | 5 | 20.05.2010 12:18 |
Параметр конструктора | Voody | Компоненты Delphi | 6 | 14.12.2009 19:52 |