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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа задание-ответ http://www.cyberforum.ru/cpp-beginners/thread630220.html
И снова здрасти :) Возникла необходимость создания программы по типу Вопрос-Ответ. Т.е. программа задаёт вопрос, в случае если ответят верно - переход к след. вопросу, если нет - ещё 1 попытка или сообщение что ответ не верный(можно и без этого конечно). Всего 4 вопроса. Если у кого есть свободное время, не могли бы Вы написать хотя бы начальный код (для 1 вопроса). В качестве примера можно...
C++ Красивое GUI на с++ Сегодня задался вопросом,кто как создается красивое гуи на с++?Без использование QT и .NET платформы. http://www.cyberforum.ru/cpp-beginners/thread630179.html
Обработка сообщений в стиле WinAPI C++
Здравствуйте. Делаю небольшую игрушку. Использую принцип обмена сообщениями между объектами. В итоге получил то, что некоторые объекты должны переопределять метод, который определяет, может ли объект обработать данное сообщение. Чтобы немного проще было понять вот примерная картина: class Base { public: virtual bool CanHandle(int messageCode)=0; }; class Derived : public Base { public:
C++ Совершенные числа
Здравствуйте. Пытаюсь решить следующую задачку: реализовать метод, который получает число n и возвращает все совершенные числа в диапазоне 0..n. (совершенное число равно сумме своих делителей напр. 6 = 1 + 2 + 3) Думал что получилось, но увидел что программа выводит также число 24, которое не является совершенным. Код: #include <iostream> using namespace std; int main() { int m =0;...
C++ Поиск подстрок http://www.cyberforum.ru/cpp-beginners/thread630141.html
Задание подсчитать все подстроки с использованием функции strstr(). Делаю так: int NumSubStr(char *str1, char *str2){ int result = 0; while(strstr(str1,str2)){ result++; str1= str1 + (int)(strstr(str1,str2) - str1) + Length(str2);
C++ Видеопамять Всем привет. Что можно почитать про видеопамять с использованием C++? Добавлено через 1 минуту Задание такое: реализовать функцию принимающее три параметра цвет фона, цвет тона и код символа и заполняющая этим символов весь экран. подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
29.07.2012, 12:57     Функция, которая позволяет выбрать имплементацию члена класса
Цитата Сообщение от Leeto Посмотреть сообщение
Так нет мне надо чтобы юзер выбирал... Т.е. чтоб в консоле спрашивалось а-ля "выберете реализацию если конол синтакс нажмите 1 .... "

Нененне оба варианта мне вообще не нужно
Вот это взаимоисключающие вещи. С++ не Лисп, перекомпилировать программу во время выполнения тут, кхм, сложно. Ведь выбирать надо при выполнении программы, а значит она должна или знать оба варианта, или изменять свой код нужным образом. Поэтому вам придётся сделать две реализации, а внутри уже по if (левая_пятка) выбирать нужную. Вытащить всю функциональность Line и,например, вариант с копированием в базовый класс, унаследовать от него вариант с присваиванием, по желанию пятки динамически создать нужный вариант, привести его к базовому типу и идти дальше:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Line {
public:
    Line(const Point& NewStartPoint, const Point& NewEndPoint)
        : StartPoint(NewStartPoint), EndPoint(NewEndPoint) {}
    // ...
protected:
    Point StartPoint, EndPoint;
};
 
class Line_assign : public Line {
    Line_assign(const Point& NewStartPoint, const Point& NewEndPoint)
    {
        StartPoint = NewStartPoint;
        EndPoint = NewEndPoint;
    }
};
 
int main()
{
    //...
    Line *line = NULL;
    if (пятка) {
        line = new Line(/* ... */);
    }
    else {
        line = new Line_assign(/* ... */);
    }
    // дальшё всё как обычно, только delete line; не забыть
    // и точки (.) позаменять на стрелочки (->)
}
 
Текущее время: 22:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru