Не могу разобраться с тем, как использовать методы 1 класса во 2 классе. К примеру, в методах 1 класса я хочу вызывать методы 2 класса. Как такое сделать? Пожалуйста, не надо меня перенаправлять прямым текстом на ютуб в гугл. Я только что оттуда. Меня интересует грамотный пример, простой в понимании, подходящий для новичков. Желательно с пояснениями.
Всех адекватных заранее благодарю))
Другие языки программирования и технологии
Приведите, пожалуйста, пример ( адекватный для новичка ) использования методов одного класса в методах другого С++
#include <iostream>
using namespace std;
class Point {
public:
Point() : x_(0), y_(0) {}
Point(const double x, const double y) : x_(x), y_(y) {}
void move(const double x, const double y) {
x_ += x;
y_ += y;
}
double x()const { return x_; }
double y()const { return y_; }
private:
double x_;
double y_;
};
class Section {
public:
Section(const Point& a, const Point& b) : a_(a), b_(b) {}
double length()const {
return sqrt(pow(a_.x() - b_.x(), 2) + pow(a_.y() - b_.y(), 2));
}
private:
Point a_;
Point b_;
};
Point input(const char* p = "O") {
cout << p << "x: ";
double x;
cin >> x;
cout << p << "y: ";
double y;
cin >> y;
Point point(x, y);
return point;
}
int main() {
auto a = input("A");
auto b = input("B");
Section section(a, b);
auto length = section.length();
cout << "Length: " << length << endl;
system("pause");
}
using namespace std;
class Point {
public:
Point() : x_(0), y_(0) {}
Point(const double x, const double y) : x_(x), y_(y) {}
void move(const double x, const double y) {
x_ += x;
y_ += y;
}
double x()const { return x_; }
double y()const { return y_; }
private:
double x_;
double y_;
};
class Section {
public:
Section(const Point& a, const Point& b) : a_(a), b_(b) {}
double length()const {
return sqrt(pow(a_.x() - b_.x(), 2) + pow(a_.y() - b_.y(), 2));
}
private:
Point a_;
Point b_;
};
Point input(const char* p = "O") {
cout << p << "x: ";
double x;
cin >> x;
cout << p << "y: ";
double y;
cin >> y;
Point point(x, y);
return point;
}
int main() {
auto a = input("A");
auto b = input("B");
Section section(a, b);
auto length = section.length();
cout << "Length: " << length << endl;
system("pause");
}
Алексей Быков
О, спасибо большое!)
Не совсем понимаю, в чём сложность, поэтому вот просто пример:
class A {
void foo() const {std::cout << "A::foo()" << std::endl;}
};
class B {
void bar(const A& a) const {
std::cout << "B::bar()" << std::endl;
a.foo();
}
};
class A {
void foo() const {std::cout << "A::foo()" << std::endl;}
};
class B {
void bar(const A& a) const {
std::cout << "B::bar()" << std::endl;
a.foo();
}
};
Алексей Быков
Немного не пойму. что написано. Меня интересует вот такой вариант :
Основной класс
{
Здесь я вызываю функцию основного класса.
Далее мне необходимо вызвать функцию другого класса.
}
Например : в Qt Creator у меня есть главный класс. В нем есть форма с виджетами. 1 из виджетов - таблица. И мне ее надо будет заполнять несколько раз. Каждый раз копипастить код заполнения таблицы в основном классе не охота, ибо загромождение методов класса идет. Поэтому хочу создать параллельный класс, в котором 1 раз пропишу метод заполнения таблицы, и буду его вызывать в методах основного класса, когда это потребуется. Копипастить 1 строчку гораздо приятнее, чем 200 строк
Основной класс
{
Здесь я вызываю функцию основного класса.
Далее мне необходимо вызвать функцию другого класса.
}
Например : в Qt Creator у меня есть главный класс. В нем есть форма с виджетами. 1 из виджетов - таблица. И мне ее надо будет заполнять несколько раз. Каждый раз копипастить код заполнения таблицы в основном классе не охота, ибо загромождение методов класса идет. Поэтому хочу создать параллельный класс, в котором 1 раз пропишу метод заполнения таблицы, и буду его вызывать в методах основного класса, когда это потребуется. Копипастить 1 строчку гораздо приятнее, чем 200 строк
а на ютуб и не буду. буду в книжки направлять.
в книжках ищи про статические методы и про создание объектов класса. это два основных способа. на самом деле паттернов много разных.
вот это найди и далее книжки читай
в книжках ищи про статические методы и про создание объектов класса. это два основных способа. на самом деле паттернов много разных.
вот это найди и далее книжки читай
Похожие вопросы
- Приведите пожалуйста пример программы на ассемблере, использующая API функцию GlobalMemoryStatus. Заранее спасибо.
- Что из себя представляет Дескриптор (хендл)? приведите пожалуйста пример житейский
- Чем занимается обыкновенный программист? Какие у него задачи? Приведите пожалуйста конкретный пример =)
- Объясните пожалуйста на бытовом языке, что такое указатель в СИ, приведите бытовой пример, описывающий эту операцию?
- Приведите простой пример программы на C++.
- Сложность алгоритмов приведите два примера когда алгоритм квадратичной сложности О (n) будет ХУДШИМ выбором чем O(n^2)
- Объективное сравнение Java и .NET в плане создания сайтов? приведите, пожалуйста
- подскажите пожалуйста пример для регистрации на php
- что можно сделать в Adobe Illustrator чего не можна в CorelDraw? Дайте пожалуйста примеры...
- Напишите пожалуйста примеры функций выделения памяти и освобождения памяти (с аргументами) в С++ ?