Это подробное руководство по основам языка C++, включающее примеры программ, которые демонстрируют различные концепции программирования на C++.
Каждая программа на C++ начинается с функции main()
:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
Основные типы данных в C++:
int
— целые числаfloat
— числа с плавающей запятойdouble
— числа с двойной точностьюchar
— одиночные символыПример использования арифметических операций в C++:
#include <iostream>
int main() {
int a = 10, b = 20;
int sum = a + b;
int diff = b - a;
int prod = a * b;
int div = b / a;
int mod = b % a;
std::cout << "Sum: " << sum << std::endl;
std::cout << "Difference: " << diff << std::endl;
std::cout << "Product: " << prod << std::endl;
std::cout << "Division: " << div << std::endl;
std::cout << "Modulus: " << mod << std::endl;
return 0;
}
Ввод и вывод данных с использованием cin
и cout
:
#include <iostream>
int main() {
int num;
std::cout << "Enter an integer: ";
std::cin >> num;
std::cout << "You entered: " << num << std::endl;
return 0;
}
Пример использования оператора if-else
:
#include <iostream>
int main() {
int num;
std::cout << "Enter an integer: ";
std::cin >> num;
if (num > 0) {
std::cout << "The number is positive." << std::endl;
} else if (num < 0) {
std::cout << "The number is negative." << std::endl;
} else {
std::cout << "The number is zero." << std::endl;
}
return 0;
}
Пример цикла while
:
#include <iostream>
int main() {
int i = 0;
while (i < 5) {
std::cout << "i = " << i << std::endl;
i++;
}
return 0;
}
Пример работы с массивами:
#include <iostream>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
std::cout << "arr[" << i << "] = " << arr[i] << std::endl;
}
return 0;
}
Пример создания и использования функции:
#include <iostream>
void greet() {
std::cout << "Hello from the function!" << std::endl;
}
int main() {
greet();
return 0;
}
Пример создания и использования классов:
#include <iostream>
class Rectangle {
public:
Rectangle(double w, double h) : width(w), height(h) {}
double area() const {
return width * height;
}
void display() const {
std::cout << "Width: " << width << ", Height: " << height << ", Area: " << area() << std::endl;
}
private:
double width;
double height;
};
int main() {
Rectangle rect(5.0, 3.0);
rect.display();
return 0;
}
Пример использования наследования в C++:
#include <iostream>
class Animal {
public:
virtual void speak() const {
std::cout << "Animal makes a sound." << std::endl;
}
};
class Dog : public Animal {
public:
void speak() const override {
std::cout << "Dog barks." << std::endl;
}
};
int main() {
Animal* animal = new Dog();
animal->speak();
delete animal;
return 0;
}
Пример работы с указателями:
#include <iostream>
int main() {
int num = 10;
int* ptr = #
std::cout << "Value of num: " << num << std::endl;
std::cout << "Value via pointer: " << *ptr << std::endl;
*ptr = 20;
std::cout << "New value of num: " << num << std::endl;
return 0;
}
Пример динамического выделения и освобождения памяти:
#include <iostream>
int main() {
int* ptr = new int; // выделение памяти
*ptr = 10;
std::cout << "Value: " << *ptr << std::endl;
delete ptr; // освобождение памяти
return 0;
}
Пример использования умных указателей:
#include <iostream>
#include <memory>
class Resource {
public:
Resource() {
std::cout << "Resource acquired" << std::endl;
}
~Resource() {
std::cout << "Resource destroyed" << std::endl;
}
};
int main() {
std::unique_ptr ptr1 = std::make_unique();
std::shared_ptr ptr2 = std::make_shared();
// std::unique_ptr и std::shared_ptr автоматически освобождают память
return 0;
}
Пример шаблонов функций и классов:
#include <iostream>
template <typename T>
T add(T a, T b) {
return a + b;
}
template <typename T>
class Pair {
public:
Pair(T first, T second) : first(first), second(second) {}
T getFirst() const { return first; }
T getSecond() const { return second; }
private:
T first;
T second;
};
int main() {
std::cout << "Add: " << add(10, 20) << std::endl;
Pair<int> intPair(1, 2);
std::cout << "Pair: (" << intPair.getFirst() << ", " << intPair.getSecond() << ")" << std::endl;
return 0;
}
Пример обработки исключений:
#include <iostream>
int divide(int a, int b) {
if (b == 0) {
throw std::runtime_error("Division by zero");
}
return a / b;
}
int main() {
try {
std::cout << "Result: " << divide(10, 2) << std::endl;
std::cout << "Result: " << divide(10, 0) << std::endl;
} catch (const std::exception& e) {
std::cout << "Error: " << e.what() << std::endl;
}
return 0;
}
Пример работы с файлами в C++:
#include <iostream>
#include <fstream>
int main() {
std::ofstream outFile("example.txt");
if (outFile.is_open()) {
outFile << "Hello, file!" << std::endl;
outFile.close();
}
std::ifstream inFile("example.txt");
std::string line;
if (inFile.is_open()) {
while (std::getline(inFile, line)) {
std::cout << line << std::endl;
}
inFile.close();
}
return 0;
}