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

Перегрузка конструктора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удалить из всех слов массива последнее вхождение второй подстроки http://www.cyberforum.ru/cpp-beginners/thread1137917.html
привет, пацаны..помогите написать прогу, нужно завтра сдать, хз что делать... Дан массив слов и две подстроки. Удалить из всех слов массива последнее вхождение второй подстроки. Сформировать два предложения из полученных слов массива. В первое предложение должны войти слова, длина которых четная, и которые имеют в своем составе перевернутую первую подстроку. Во второе предложение...
C++ Реализовать класс CMatrix Привет! Нужно реализвать класс CMatrix и иницилизовать его используя объекты класса CVector. Т.е. CVector v1(); CVector v2(); CMatrix m(2, v1, v2); http://www.cyberforum.ru/cpp-beginners/thread1137878.html
C++ Вычислить с помощью класса совершенные числа
здравствуйте помогите пожалуйста вычислить с помощью класса совершенные числа заранее спасибо(6=1+2+3)
Как сделать что бы программа не выходила из консоли пока не будут введены все числа.? C++
#include <iostream> #include <conio.h> using namespace std; #include <locale> int main() { setlocale(LC_ALL , "Russian"); int x; cout << "Введите число от 0 до 10: \n";
C++ Вложенные объекты http://www.cyberforum.ru/cpp-beginners/thread1137834.html
#include <iostream> using namespace std; class one { public: one(int a):object(a){} private: two object; int a;
C++ Подскажите: структура "Игрушка", файловый ввод/вывод На основе данных входного файла составить инвентарную ведомость игрушек, включив следующие данные, название игрушки, ее стоимость в руб, возрастные границы детей, для которых предназначена игрушка. Вывести в новый файл инвентарную ведомость игрушек, уменьшив стоимость каждого вида ирушек на х процентов подробнее

Показать сообщение отдельно
MrAndrey_ka
 Аватар для MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
03.04.2014, 15:01     Перегрузка конструктора
есть класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template <class Type>
class VRTSmartStr : public SmartArray<Type>{
public:
    VRTSmartStr() :SmartArray(){};
    VRTSmartStr(_In_opt_z_ const Type* Val, size_t Size = 0){
        SetData(Val, (Size ? Size : StringLength(Val))+1);
        }
 
    VRTSmartStr(const char* Val, size_t Size = 0) :SmartArray(){
        Buf = strangeType<Type>::ToBaseType(Val, Size);
        }
    
    VRTSmartStr(const INT64 val, int sys = 10){
        Buf = strangeType<Type>::NumberToStr(val, sys);
        }
   ......
}
 
 
main(...){
//так вот использую
VRTSmartStr<char> G(36);
}
при таком написании все работает нормально, но как только добавляю еще один конструктор
C++
1
2
3
    VRTSmartStr(const double val, int sys = 10){
        Buf = strangeType<Type>::NumberToStr(val, sys);
        }
выдает ошибку
VRTSmartStr<char>::VRTSmartStr: неоднозначный вызов перегруженной функции
может быть "VRTSmartStr<char>::VRTSmartStr(const VRTSmartStr<char> &)"
или "VRTSmartStr<char>::VRTSmartStr(const double,int)"
или "VRTSmartStr<char>::VRTSmartStr(const INT64,int)"
или .....

к стати если класс поменять с double на int, long или даже char все равно остается проблемма, почему второе число сбивает компилятор с толку и как можно это обойти?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru