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

Вопрос по наследованию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемешанная таблица http://www.cyberforum.ru/cpp-beginners/thread261371.html
Здравствуйте! Нужно написать программу работы с перемешанной таблицей, использующее перемешивание сцеплением. Я не прошу написать программу за меня, мне нужно только, что бы вы мне объяснили, как...
C++ Транспонировать матрицу и найти невозрастающие или неубывающие строки Задана матрица A(n,n). Зеркально отразить ее относительно главной диагонали. В преобразованной матрице найти строки, элементы которой образуют убывающую или возрастающую последовательность. ... http://www.cyberforum.ru/cpp-beginners/thread261368.html
visual studio 2010 ultimate. ошибка при компиляции!!! C++
всем привет! решил изучать язык программирование C++ скачал штук 50 книг, открываю книгу, читаю:read: и тут:( написано что нужен компилятор=-O скачал штук 2 компилятора, visual studio 2010 и еще...
C++ Транслит)
Помогите пжлста перевести из паскаля в Borland c++ Только нужно тютелька в тютельку, и чтоб работало) огромное пасяб) program p1; uses crt; var Rmatrix:array of real; Rconst:array of real; ...
C++ Работа со структурой http://www.cyberforum.ru/cpp-beginners/thread261339.html
1. Описать структуру с именем DATA, содержащую следующие поля: • Number – число; • Month – месяц; • Year – год. 2. Написать программу, определяющую по порядковому номеру дня в году число и...
C++ Лабораторная работа новичку. Задали лабораторную работу. Нужно решить. 1.)Найти площадь треугольника S, если известны его стороны a, b, c. 2) http://dump.ru/file/5130213 (Формулы два) подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.03.2011, 19:44
Ошибок нет, есть непонимание того, что такое конструктор. Вы в строке 38 конструируете объект в никуда. Он создаётся и, поскольку имени не имеет, тут же уничтожается. Правильный вариант такой:
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
#include <iostream>
#include <string.h>
using namespace std;
 
class ch
{
protected:
        enum{size = 10};
        char str[size];
public:
        ch ()
        {str[0] = '\0';}
        ch (char s[])
        {strcpy(str,s);}
 
        void view()
        {cout << str;}
 
};
 
class Pstring:public ch
{
public:
        Pstring ():ch()
        {}
        
        Pstring(char s[]):
        ch(s)
        {
        }
};
 
 
 
int main()
{
        Pstring s1,s2;
        char ch[] = "7896";
        s1 = ch;
        s1.view();
 
        return 0;
}
Так и никак больше надо делать потому, что список инициализации и только он может инициализировать переменные родительского класса из дочернего посредством конструктора. Иначе вам в конструкторе Pstring пришлось бы повторить код конструктора ch.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru