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

Функция, которая позволяет выбрать имплементацию члена класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа задание-ответ http://www.cyberforum.ru/cpp-beginners/thread630220.html
И снова здрасти :) Возникла необходимость создания программы по типу Вопрос-Ответ. Т.е. программа задаёт вопрос, в случае если ответят верно - переход к след. вопросу, если нет - ещё 1 попытка или...
C++ Красивое GUI на с++ Сегодня задался вопросом,кто как создается красивое гуи на с++?Без использование QT и .NET платформы. http://www.cyberforum.ru/cpp-beginners/thread630179.html
Обработка сообщений в стиле WinAPI C++
Здравствуйте. Делаю небольшую игрушку. Использую принцип обмена сообщениями между объектами. В итоге получил то, что некоторые объекты должны переопределять метод, который определяет, может ли объект...
C++ Совершенные числа
Здравствуйте. Пытаюсь решить следующую задачку: реализовать метод, который получает число n и возвращает все совершенные числа в диапазоне 0..n. (совершенное число равно сумме своих делителей напр....
C++ Поиск подстрок http://www.cyberforum.ru/cpp-beginners/thread630141.html
Задание подсчитать все подстроки с использованием функции strstr(). Делаю так: int NumSubStr(char *str1, char *str2){ int result = 0; while(strstr(str1,str2)){ result++;...
C++ Видеопамять Всем привет. Что можно почитать про видеопамять с использованием C++? Добавлено через 1 минуту Задание такое: реализовать функцию принимающее три параметра цвет фона, цвет тона и код символа и... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.07.2012, 12:01
Не буду говорить, хорошо это или плохо, но если из принципа... Компилятор не может разобраться, какой из конструкторов выбирать, если у них одинаковая сигнатура, он мысли не читает. Поэтому добавляете какому-то из конструкторов лишний параметр, например:
C++
1
2
3
4
5
6
7
8
9
10
11
Line::Line (const Point& NewStartPoint,const Point& NewEndPoint): StartPoint(NewStartPoint),EndPoint(NewEndPoint)
    {
        // StartPoint =  NewStartPoint  ; 
        // EndPoint   =  NewEndPoint  ; 
    }
 
Line::Line (const Point& NewStartPoint,const Point& NewEndPoint,int ignore)
    {
         StartPoint =  NewStartPoint  ; 
         EndPoint   =  NewEndPoint  ; 
    }
После этого уже можете как вам там надо писать
C++
1
2
3
4
5
6
7
8
if (левая_пятка)
{
    return new Line(start, end);
}
else
{
    return new Line(start, end, 42);
}
Не особо красиво, но издеваться над конструктором копирования по умолчанию тоже некрасиво.

Как вариант, более приятный на вид:
C++
1
2
3
4
5
6
7
8
9
Line::Line (const Point& NewStartPoint,const Point& NewEndPoint,bool reassign = false)
        : StartPoint(NewStartPoint),EndPoint(NewEndPoint)
    {
        if (reassign)
            {
                StartPoint =  NewStartPoint  ; 
                EndPoint   =  NewEndPoint  ; 
            }
    }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru