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

Не могу понять почему - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора http://www.cyberforum.ru/cpp-beginners/thread896595.html
Ребята, помогите пожалуйста решить. Я в этом деле новичок, и сам никак не справлюсь. 3. Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dx с точностью ε. Таблицу снабдить заголовком и шапкой. Каждоя строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
C++ Описать структуру с именем STUDENT Ребята, помогите пожалуйста решить. Я в этом деле новичок, и сам никак не справлюсь. 2. Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по... http://www.cyberforum.ru/cpp-beginners/thread896594.html
C++ синтаксическая ошибка
#include <iostream> #include <stdio.h> #include <io.h> #include <ctime> using namespace std; #define MEN 2 #define ORIGINAL_MAZE 0 #define MAZE_WITH_PATH 1
Вычислить множество значений функции y C++
Вычислить множество значений функции y=a*a*x+b*x/x+1 на отрезке с шагом 0,1 где a=0,3 b=0,9 (если получится, можно что-нибудь простенькое)
C++ Список (найти ошибку в коде) http://www.cyberforum.ru/cpp-beginners/thread896572.html
Почему компилируется программа? Вот эта функция: List::node* seach(T el) { for(node* p = head->next; p != NULL; p = p->next) if(p->item == el) return p; return NULL; } #include <iostream>
C++ Как открыть и записать файл частино Допустим у феня есть файл весом 10 гиг как прочитать ефективно только часть его (скажем от сотого байта по двохсотый) у переменную памяти как также переписать обратно инфу на етом файле из переменной и как вставить новую информацию с роздвигом файла а не изменой какие есть функции для етого и в каких библиотеках подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.06.2013, 23:31     Не могу понять почему
не смотря на наличие оператора = в производном классе (с не стандартной сигнатурой), компилятор по прежнему генерит стандартный и подставляет его там, где-можно. а дефолтная реализация такова, что она копирует все члены производного класса, плюс вызывает оператор базового (у которого сигнатура больше похоже на стандартную, но все равно кривая). Поэтому вызов оператора = производного класса не трейсится, а базового - трейсится. Вот тестик, который это и подтверждает:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <string>
 
struct Base
{
  std::string base;
 
  Base()
  {
  }
 
  Base(const Base& other)
    : base(other.base)
  {
    std::cout << "This is Base::Base(const Base&)" << std::endl;
  }
 
  Base operator = (Base other)
  {
    std::cout << "This is Base::operator = " << std::endl;
    base = other.base;
    return *this;
  }
};
 
struct Der : public Base
{
  std::string der;
 
  Der()
  {
  }
 
  Der(const Der& other)
    : Base(other)
    , der(other.der)
  {
    std::cout << "This is Der::Der(const Der&)" << std::endl;
  }
 
  Der operator = (Base other)
  {
    std::cout << "This is Der::operator = " << std::endl;
    return *this;
  }
};
 
int main()
{
  Der der1;
  der1.base = "base member";
  der1.der = "der member";
 
  Der der2;
  der2 = der1;
 
  std::cout << "der2.base = " << der2.base << std::endl;
  std::cout << "der2.der = " << der2.der << std::endl; // вот по этому принту можно видеть, что Der::der все таки скопировался.
  
   
  return 0;
}
 
Текущее время: 10:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru