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

Наследование или создание класса в классе? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ дальше - через enter http://www.cyberforum.ru/cpp-beginners/thread238509.html
диалог между пользователем-программой программа что-то пишет пользователю пользователь это все прочитал нажал энтер программа опять что-то пишет пользователю т.е. энтер это как разрешение на продолжение диалога
C++ КЛАССЫ Очень нужна помощь!!! подскажите где ошибки: #include <iostream> #include <windows.h> char* Rus(const char* text); using namespace std; class proverka { http://www.cyberforum.ru/cpp-beginners/thread238508.html
Все нулевые элементы матрицы разместить на местах с четными индексами строк и столбцов C++
Помогите написать код на С:wall:
передача всей матрицы в функцию C++
как передать всю матрицу в функцию? функция ничего не возвращает, я только печатает матрицу
C++ Про указатели http://www.cyberforum.ru/cpp-beginners/thread238475.html
Здравствуйте я совсем маленький C++ программер, вот сейчас разбираюсь с указателями. Подскажите пожалуйста. В книге встретил пример, который ввёл меня в ступор. #include<iostream> using namespace std; int main(){ int x,*p,*s; x = 10; s = &x;
C++ Как создавать и подключать библиотеки? Здравствуйте, я искал по форуму в интернете и в книгах, но все что я находил по этому вопросу у меня не работало, поэтому я прошу Вас показать простейший пример. в примере желательно чтобы было: как сохранять, какой программой пользоваться, по какому шаблону пишутся библиотеки и как их подключать, в программу(пишу на С++ не на С, а на С++). Заранее спасибо. подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
05.02.2011, 16:36     Наследование или создание класса в классе?
Цитата Сообщение от Matlabist Посмотреть сообщение
Выдает ошибку
B::B' : cannot access private member declared in class 'A::B'
Где? В какой строке?

Цитата Сообщение от Matlabist Посмотреть сообщение
Почему в самом классе нельзя описать?
Можно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A {
 public:
  class B {
  };
  A() {
    b1 = new B;
    b2 = new B;
    b3 = new B;
  }
  ~A() {
    delete b1;
    delete b2;
    delete b3;
  }
 private:
  B *b1, *b2, *b3;
};
Цитата Сообщение от Matlabist Посмотреть сообщение
Как сделать наследование правильно?
В данном случае не нужно наследования, нужна агрегация. Это когда один объект включает в себя другие объекты.

Цитата Сообщение от Matlabist Посмотреть сообщение
Чем это хуже вот этого
По смыслу хуже. По смыслу, класс точка не уникален для класса треугольника. Класс точка может так же описывать точки, скажем, многоугольника. Поэтому по смыслу лучше сделать их раздельными.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class CPoint
{
public:
        CPoint(double x, double y)
          : m_x(x), m_y(y) {}
        double GetX() const { return m_x; }
        double GetY() const { return m_y; }
private:
        double m_x, m_y;
};
 
class CTriangle
{
public:
        CTriangle(CPoint const& p1, CPoint const& p2, CPoint const& p3)
          : m_p1(p1), m_p2(p2), m_p3(p3) {}
        CPoint GetVertex(unsigned index) const {
          // have no idea what this one does
        }
private:
        CPoint m_p1, m_p2, m_p3;
};
 
Текущее время: 10:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru