

- Главная
- Каталог
- Интернет технологии
- C/C++ | Вопросы собесов

C/C++ | Вопросы собесов
Разбираем вопросы с собеседований на С/С++ разработчика
Статистика канала
Полная статистикаchevron_rightconst
после объявления метода указывает, что метод является константным.
const
после списка параметров метода:
class MyClass {
public:
int getValue() const; // Константный метод
void setValue(int newValue); // Неконстантный метод
private:
int value;
};
// Определение константного метода
int MyClass::getValue() const {
return value; // Допустимо: метод не изменяет состояние объекта
}
// Определение неконстантного метода
void MyClass::setValue(int newValue) {
value = newValue; // Допустимо: метод изменяет состояние объекта
}{}
#include <iostream>
class MyClass {
public:
MyClass(int v) : value(v) {}
int getValue() const { // Константный метод
return value;
}
void setValue(int newValue) { // Неконстантный метод
value = newValue;
}
private:
int value;
};
int main() {
MyClass obj(10);
std::cout << "Value: " << obj.getValue() << std::endl; // Вывод: 10
obj.setValue(20);
std::cout << "New value: " << obj.getValue() << std::endl; // Вывод: 20
// Константный объект
const MyClass constObj(30);
std::cout << "Const object value: " << constObj.getValue() << std::endl; // Вывод: 30
// constObj.setValue(40); // Ошибка: setValue не может быть вызван для константного объекта
return 0;
}{}
const MyClass constObj(30);
constObj.getValue(); // Допустимо: getValue — константный метод
// constObj.setValue(40); // Ошибка: setValue — неконстантный метод{}
Ставь 👍 и забирай 📚 Базу знанийСтавь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу знаний
Singleton
можно применять отложенную инициализацию, чтобы объект создавался только тогда, когда он впервые потребуется.
#include <iostream>
class Singleton {
private:
static Singleton* instance;
Singleton() { std::cout << "Создан Singleton\n"; }
public:
static Singleton* getInstance() {
if (!instance) { // Создаем объект только при первом вызове
instance = new Singleton();
}
return instance;
}
void doSomething() {
std::cout << "Работа Singleton\n";
}
};
// Определение статической переменной
Singleton* Singleton::instance = nullptr;
int main() {
std::cout << "Программа запущена\n";
// Singleton еще не создан
Singleton* s1 = Singleton::getInstance(); // Здесь объект создается
s1->doSomething();
return 0;
}{}
#include <iostream>
#include <fstream>
#include <string>
class FileLoader {
private:
std::string data;
bool isLoaded = false;
public:
void loadData() {
if (!isLoaded) {
std::ifstream file("data.txt");
if (file) {
std::getline(file, data);
isLoaded = true;
std::cout << "Файл загружен: " << data << std::endl;
} else {
std::cout << "Ошибка загрузки файла\n";
}
}
}
std::string getData() {
if (!isLoaded) {
loadData(); // Загружаем данные только при первом запросе
}
return data;
}
};
int main() {
FileLoader loader;
std::cout << "До обращения к файлу\n";
std::cout << "Данные: " << loader.getData() << std::endl; // Здесь файл загружается
return 0;
}{}
#include <iostream>
class ExpensiveCalculation {
private:
int result;
bool isCalculated = false;
public:
int getResult() {
if (!isCalculated) {
std::cout << "Выполняем сложные вычисления...\n";
result = 42; // Допустим, это сложный расчет
isCalculated = true;
}
return result;
}
};
int main() {
ExpensiveCalculation calc;
std::cout << "Результат: " << calc.getResult() << std::endl; // Здесь выполняется вычисление
std::cout << "Результат повторно: " << calc.getResult() << std::endl; // Просто возвращаем кэш
return 0;
}{}
Ставь 👍 и забирай 📚 Базу знанийunordered_set
.
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet;
// Добавление элементов
mySet.insert(1);
mySet.insert(2);
mySet.insert(3);
// Поиск элемента
if (mySet.find(2) != mySet.end()) {
std::cout << "Element found" << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
return 0;
}{}
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
C/C++ | Вопросы собесов — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 4.3K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.2, количество отзывов – 1, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4615.38 ₽, а за 3 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий