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

Может ли виртуальная функция возвращать значения разных типов? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массив http://www.cyberforum.ru/cpp-beginners/thread1176873.html
шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массива
C++ написать 2 перегруженных функции для поиска суммы корней квадратного и линейного уравнения написать 2 перегруженных функции для поиска суммы корней квадратного и линейного уравнения заранее спасибо Добавлено через 1 час 31 минуту апп http://www.cyberforum.ru/cpp-beginners/thread1176872.html
Распечатать строку с заданным номером из текстового файла C++
Задание: Пусть дан текстовый файл.Распечатайте строку с заданным номером. Вот начало дальше не знаю что делать,прошу помощи. #include <stdio.h> int main(int ras, char* ras) { FILE *d; d = fopen("1.txt", "r"); int n;
Заполнить двухмерный массив случайными числами и вывести на экран C++
1.Заполнить двухмерный массив случайными числами и вывести на экран. 2.Модифицировать его следующим образом: элементу побочной диагонали присвоить значение равное разности сумм элементов до него и после в соответствующем столбце.
C++ Создать двоичный файл с информацией на скриншоте http://www.cyberforum.ru/cpp-beginners/thread1176828.html
1. С помощью текстового редактора создать текстовый документ, в который занести исходную информацию. Рекомендуется вначале занести количество записей, а затем последовательно все записи, причем тестовые поля вводить в отдельной строке, а числовые – можно в отдельной строке или в одной через пробел или разделитель табуляцию. Например, содержимое файла, который будет включать 7 записей –...
C++ Создать двоичный файл, куда записать n вещественных чисел Создать двоичный файл, куда записать n вещественных чисел. Сделать массив из элементов исходного файла, внеся в него числа, превосходящие среднее значение среди положительных значений файла. подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
15.05.2014, 16:07     Может ли виртуальная функция возвращать значения разных типов?
riv94, с классами прикольней получается, да и строгая типизация не нарушается как с указателем на войд.
Кликните здесь для просмотра всего текста
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <string>
 
class BaseRetType {
public:
    BaseRetType(std::string value = "BaseRetType") : name(value) { }
    virtual std::string get_name() { return "BaseRetType"; } 
    std::string name;
};
 
class ARetType : public BaseRetType {
public:
    ARetType() : BaseRetType("ARetType") { }
    std::string get_name() { return "ARetType"; }
};
 
class BRetType : public BaseRetType {
public:
    BRetType() : BaseRetType("BRetType") { }
    std::string get_name() { return "BRetType"; } 
};
 
class B {
public:
    BaseRetType create(int i) {
        BaseRetType res;
        
        if (i == 0) res = BaseRetType();
        else if (i == 1) res = ARetType();
        else res = BRetType();
 
        return res;
    }
};
 
int main(int argc, char *argv[]) {
    B b1;
    BaseRetType b2 = b1.create(0);
    std::cout << b2.get_name() << std::endl;
    std::cout << b2.name << std::endl;
    b2 = b1.create(1);
    std::cout << b2.get_name() << std::endl;
    std::cout << b2.name << std::endl;
    b2 = b1.create(2);
    std::cout << b2.get_name() << std::endl;
    std::cout << b2.name << std::endl;
}
Bash
1
2
3
4
5
6
7
8
ruslan@TFTM-K53TA:~/Programming/c++/cyberforum$ g++ main.cpp -o main -std=c++98
ruslan@TFTM-K53TA:~/Programming/c++/cyberforum$ ./main 
BaseRetType
BaseRetType
BaseRetType
ARetType
BaseRetType
BRetType


Добавлено через 6 минут
По коду есть непонятные места?
 
Текущее время: 18:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru