#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
Point() : x(0), y(0) {}
Point(const double x, const double y) : x(x), y(y) {}
double length(const Point& p)const {
return sqrt(pow(x - p.x, 2) + pow(y - p.y, 2));
}
private:
double x;
double y;
};
int main() {
Point a;
Point b(3.5, 4.9);
auto length = a.length(b);
cout << "Length: " << length << '\n';
system("pause > nul");
}
C/C++
Как писать класс в C++?
ну вот как то так


Ты все перепутала.
Надо не в си плюс плюс писАть класс, а в классе пИсать, плюс срать, плюс еще что-нибудь.
Надо не в си плюс плюс писАть класс, а в классе пИсать, плюс срать, плюс еще что-нибудь.
Вячеслав Носков
пидо р
Молча +_-
class MyClass {
};
};
Обычно пишут в .h файле.
если писать реализацию методов прямо внутри класса то код этих методов будет типа встроенным, как бы вставляться прямо в код.
Лучше такие методы делать для элементарных операций, типа получить указатель, или ещё что элементарное.
class Vec3{
public:
Vec3(){x=y=z=0.f;}
float x,y,z;
float* getPtr(){ return &x; } // нормальный встроенный метод
};
В .cpp файле надо делать #include "файл с классом".
Может такое быть что в методах класса используются сложные вещи (которые требуют подключения других .h файлов). Тогда реализацию методов делают в отдельном .cpp файле, чтобы потом не мучится с повсеместным указанием ненужных #include и долгой компиляцией.
class CWidget{
public:
...
void Update();
};
...далее в .cpp файле
void CWidget::Update()
{
SuperType * object = MegaLibrary::GetSomething(); // вещи из другой библиотеки
// #include "MegaLibrary.h" придётся заинклюдить только в этом .cpp файле
}
Так-же поля класса можно скрыть от пользователя (инкапсуляция). Создать абстрактный класс, и отдельный класс потомком с реализацией.
если писать реализацию методов прямо внутри класса то код этих методов будет типа встроенным, как бы вставляться прямо в код.
Лучше такие методы делать для элементарных операций, типа получить указатель, или ещё что элементарное.
class Vec3{
public:
Vec3(){x=y=z=0.f;}
float x,y,z;
float* getPtr(){ return &x; } // нормальный встроенный метод
};
В .cpp файле надо делать #include "файл с классом".
Может такое быть что в методах класса используются сложные вещи (которые требуют подключения других .h файлов). Тогда реализацию методов делают в отдельном .cpp файле, чтобы потом не мучится с повсеместным указанием ненужных #include и долгой компиляцией.
class CWidget{
public:
...
void Update();
};
...далее в .cpp файле
void CWidget::Update()
{
SuperType * object = MegaLibrary::GetSomething(); // вещи из другой библиотеки
// #include "MegaLibrary.h" придётся заинклюдить только в этом .cpp файле
}
Так-же поля класса можно скрыть от пользователя (инкапсуляция). Создать абстрактный класс, и отдельный класс потомком с реализацией.
Похожие вопросы
- Работа с классами в C++
- Как можно научится не писать говнокод на C++?
- Написать программу на C++.Создать класс vector3d, задаваемый тройкой координат. Создать конструктор...
- Класс Poll и класс Variant (тема инкапсуляция) C++
- Помогите понять отношения между классами / C/C++
- Лёгкое задание с классами C++
- Передача в метод класса указателя на функцию C++
- Как в C++ продолжить классы разные сгруппировано в файлах .h и .cpp, при этом не переопределяя классы эти?
- Получить имена полей класса c++
- Зачем нужно писать int около main(), return 0, void main в c++?