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

Абстракция - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод из Pascal в C++ http://www.cyberforum.ru/cpp-beginners/thread593646.html
Помогите перевести исходник из Pascal в C++. В Паскале я силен,а вот Си ток немного знаю, выручайте плз, в долгу не останусь! Исходник длинный, так как я писал Меню на Паскале) Uses crt, graph;...
C++ Почему не работают методы списка (односвязного), при вызове ф-ий? (Код прилагается) Написал такой код, для односвязного списка. И когда начал компилировать, столкнулся с проблемой : не работают методы. Ошибка в том, что указатели на эл-ты не могут быть вычислены. Но я не понимаю... http://www.cyberforum.ru/cpp-beginners/thread593634.html
C++ BOrland c for dos Исправить ошибку! код есть!
Прошу помощи!!!! Есть код.... Но проблема.....когда ввожу номер группы ( на разных студентов но один номер группы) то он выводит первого которого я ввел...а нужно чтобы выводил всех с заданной...
C++ Вместо вывода в stdout, сохранить числа в динамический массив
Это алгоритм выборки элементов из двумерного массива. Нужно сохранить отобранные элементы в одномерный динамически создаваемый массив. void viewArray2DPath(int **pArr2D, const unsigned int cnRow,...
C++ Написать шаблонную функцию,которая вычислит сумму значений отрицательных элементов массива числового типа http://www.cyberforum.ru/cpp-beginners/thread593586.html
Помогите с задачей на шаблонные функции. Я их вообще не понимаю. Вот задание.Мне сказали, что решение не такое большое. Заранее спасибо. 1)напишите шаблонную функцию sum() ,которая вычислит...
C++ Почему код работает только когда делаешь запуск без отладки #include "stdafx.h" #include <iostream> #include "stdlib.h" #include <locale.h> using namespace std; int main(int argc, char* argv) { setlocale(LC_ALL,"RUS"); int n,m,i,j,k,tmp,p; подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1640 / 1012 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
01.06.2012, 22:26
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
#include <iostream>
 
class Base {
public:
    virtual void print() const {std::cout << "Base\n";}
};
 
class Derived: public Base {
public:
    virtual void print() const override {std::cout << "Derived\n";}
};
 
void foo(const Base& obj)
{
    obj.print();
}
 
void bar(const Base obj)
{
    obj.print();
}
 
int main()
{
    Base b;
    Derived d;
    Base &rb = d;
 
    b.print();   // Прямой вызов без VTABLE (Base)
    d.print();   // Прямой вызов без VTABLE (Derived)
    rb.print();  // Вызов по ссылке (Derived)
    foo(b);      // Вызов по ссылке (Base)
    foo(d);      // Вызов по ссылке (Derived)
    bar(b);      // Копирование и прямой вызов (Base)
    bar(d);      // Копирование с обрезанием и прямой вызов (печатает Base, наплевав на виртуальность)
}
пример вживую
Там, где "прямой вызов" - компилятор вызывает нужную функцию без обращения к VTABLE, потому что тип автоматического объекта заведомо известен. Более того, вызов функции в таком случае он преспокойно может и заинлайнить.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru