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

Непонятны некоторые операторы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Кто знаком с алгоритмом быстрого поиска http://www.cyberforum.ru/cpp-beginners/thread565008.html
Поиск в массиве Расскажите и если можно код на языке с++ с комметариями Добавлено через 5 минут вот есть алгоритм, но не могу понять какие переменные за что отвечают http://algolist.manual.ru/search/esearch/qsearch.php
C++ выполнение условия в программе Недавно начал изучать программирование, потому не судите строго). Делал на M. Visual C++ 2010 Express. Решил попробовать создать прогу по основному профилю работы. Суть программы вычислить по формуле показатель Скорости клубочковой фильтрации в почках stdafx.h #pragma once #include "targetver.h" #include <iostream> #include <stdio.h> #include <tchar.h> http://www.cyberforum.ru/cpp-beginners/thread564997.html
Работа с set_terminate в vs2010 C++
Нужно перехватить непредусмотренное исключение.Делаю так #include "stdafx.h" #include <iostream> #include <stdexcept> #include <eh.h> using namespace System; void new_terminate() {
C++ Во входном файле содержится информация об каждом из n работников некоторой фирмы.
Во входном файле содержится информация об каждом из n работников некоторой фирмы. Пол указывается буквами М и Ж, возраст – целое от 16 до 35, отделов фирмы– 5. Ввести эту информацию и напечатать номер отдела, на котором наибольший процент мужчин. Заранее большое спасибо.
C++ не работает умножение на 0 http://www.cyberforum.ru/cpp-beginners/thread564979.html
вместо 0 выдает -1,25549e+067 почему такое происходит не могу понять, подскажите как исправить часть кода где идет умновдение for (int i = 1; i <= N-r; i++) { for (int j = 1; j <= N-r; j++) { if(i==N-r){if(j==N-r){ for(int k=j+1; k<N; k++)
C++ Помогите реализовать программу с графом на с++ Ребята очень нуждаюсь в помощи! Найти тотальный граф для неориентированного графа. Короче, нужно написать программу на С++, через структуру данных, нельзя использовать константы... Граф представить способом списков смежностей, открыть из файла... p.s. тотальный граф это граф, у которого двум смежным вершинам соответствует ещё одна вершина. подробнее

Показать сообщение отдельно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.05.2012, 14:20     Непонятны некоторые операторы
Цитата Сообщение от No10 Посмотреть сообщение
- Для чего нужна операция "?:" ?, я этого не понял.
Это конструкция if-then-else(или тернарный оператор, как уже было сказано выше). Например, результатом выражения a < b ? "a < b" : "a >= b" будет строка "a < b", если a < b, и "a >= b" в противном случае. Используется это в основном при инициализации объектов. Например, есть у нас такой класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class some_class
{
    public:
        // конструктор без параметров
        some_class()
        {
            std::cout << "some_class()\n";
        }
 
        // конструктор с параметром
        some_class(const char*)
        {
            std::cout << "some_class(const char*)\n";
        }
 
        // оператор присваивания
        some_class& operator = (const char*)
        {
            std::cout << "some_class& operator = (const char*)\n";
            return *this;
        }
};
и два варианта кода в каждом из которых происходит присваивание перменной sc некоторого значение в зависимости от условия
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//...
int main()
{
    int a;
    std::cin >> a;
 
    int b;
    std::cin >> b;
 
    some_class sc;
    if(a < b)
        sc = "a < b";
    else
        sc = "a >= b";
    
    // работаем дальше с переменной sc...
}
2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//,,,
int main()
{
    int a;
    std::cin >> a;
 
    int b;
    std::cin >> b;
 
    some_class sc = a < b ? "a < b" : "a >= b";    
    
    // работаем дальше с переменной sc...
}
если в первом случае нам понадобился конструтор без параметров и оператор присваивания, то во втором случае только конструктор с параметром.
Цитата Сообщение от No10 Посмотреть сообщение
- пожалуйста обьясните русским языком что такое перегрузка операции... Ничего не понял по этому поводу.
перегрузка операции(оператора) это назначение встроенному оператору C++ определённого поведения при использовании его с пользовательскими типами(классами). Например, выше для класса some_class перегружен оператор присваивания(operator = ). Т.е. определена специальная функция, которая будет вызвана при попытке присвоить объекту типа some_class значение переменной типа const char*(в нашем случае это просто вывод сообщения на экран). Для каждого типа, который будет стоять справа от оператора присваивания можно определить свою функцию. В отличии от простых функций операторы можно перегружать только по типу параметров. Подробнее обо всём этом можно прочесть в любой книге по C++.
Цитата Сообщение от No10 Посмотреть сообщение
-пожалуйста обьясните про работу операций New и Delete и чем они отличаются от обычного обьявиения переменной?
http://www.rsdn.ru/article/cpp/ObjectsAndPointers.xml
 
Текущее время: 02:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru