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

Преобразование классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно чтобы программа перезаписывала результат каждые 30сек http://www.cyberforum.ru/cpp-beginners/thread585132.html
Как это реализовать? Есть прога, которая считывает данные из файла и выводит на экран. Нужно чтобы она считывала данные каждые 30(приблизительно) секунд. Если есть идеи, поделитесь, буду очень благодарна.
C++ Выделить цветом символ в консоли Всем привет. Нужно в массиве выделять другим цветом определенный символ. enum COLOR {BLUE = 9, GREEN, TURQUOISE, RED, VIOLET, YELLOW}; void textcolor(int x, int y, WORD color) { HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE); COORD coord = {x, y}; WriteConsoleOutputAttribute(stdOut, &color , 1, coord, NULL); } for (g=0;g<n;++g) http://www.cyberforum.ru/cpp-beginners/thread585126.html
Оператор цикла C++
Помогите пожалуйста с прогой: Известны оценки по физике каждого из 20 учеников класса. Вычислить среднюю оценку. //C++ или C#
C++ Одномерный массив, состоящий из n целых элементом
Помогите с задачами. a) Вычислить произведение элементов массива с чётными номерами. b) Сумма элементов массива, расположенных между первым и последним нулевыми элементами. c) Преобразовать одномерный массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные (элементы, равные 0, считать положительными).
C++ Столкновение объектов http://www.cyberforum.ru/cpp-beginners/thread585088.html
Собираюсь писать игру на SDL. В ней придется обрабатывать столкновения произвольных объектов. Меня интересует не физика, а именно как определить, столкнулись или нет и если столкнулись, то чем? Проще говоря, есть игровая плоскость. По ней движутся 2 объекта. У каждого объекта есть Surface (2-мерный массив, в котором значения могут принимать 0 или 1. 0 - значит там пустота, 1 - не пустота. У...
C++ Вывод номера элемента Всем привет, возник такой вопрос. есть массив, который вводится с клавиатуры, потом я ищу max\min элемент, вывожу его и вывожу номер этого элемента, но проблема как написать вывод этого элемента. for ( i=1; i<=n; i++){ for (j=1; j<=n; j++) if (min>m) min=m; } cout<<"min element. "<<" nomer: "<<"m "<<min<<endl; break; подробнее

Показать сообщение отдельно
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
24.05.2012, 13:03     Преобразование классов
Цитата Сообщение от LineStown Посмотреть сообщение
Почему нельзя использовать заккоментированые конструкторы
В первом конструкторе: с2 используете по значению, хотя это не полный тип. Т.е. он только объявлен, не определён. Имея только предварительное описание типа можно только объявлять ссылки\указатели на него, обращаться в его членам опять же нельзя - нужно определение. Как то так. С с2 налагогично: с1 - неполный тип. + методы, которые не изменяют состояния объекта надо делать константными. И точек с запятыми лишних куча. Этот же код, который можно скомпилировать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//Преобразования классов
#include<iostream>
 
using namespace std;
 
class c2;
 
class c1
{
private:
    int a, b;
public:
    c1() : a(0), b(0) {} //;
    c1(int aa, int bb) : a(aa), b(bb) {} //;
    c1(c2 const& p);
    int getq() const {
       return a;
    }    
    operator c2() const;
    void print() const {
        cout << "c1 " << a  << " " << b << endl;
    }
};
 
class c2 {
private:
    int a;
public:
    c2() : a(0) {} //;
    c2(int aa) : a(aa) {}//;
    c2(c1 p) {
        a = p.getq() / 2;
    }
    int getq() const
    {
        return a;
    }
    operator c1() const;
    void print() const {
        cout << "c2 " << a << endl;
    }
};
 
c1::operator c2() const {
    return c2(a);
}
c2::operator c1() const {
    return c1(a * 2 ,a * 4);
}
 
c1::c1(c2 const& p) {
    a = p.getq() * 2;
    b = p.getq() * 4;
}
    
 
int main() {
    setlocale(LC_ALL,"Russian");
    c2 a(5);
    c1 b;
    b = c1(a);
    a.print();
    b.print();
    //return EXIT_SUCCESS;
}
 
Текущее время: 23:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru