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

Инициализация членов в объявлении класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запись вектора в бинарный файл http://www.cyberforum.ru/cpp-beginners/thread1654657.html
Здравствуйте, пытаюсь сделать запись вектора из обьектов моего класа в бинарный файл, но получаю не понятного рода символы в значениях атрибутов класа. Вот код: void save() { ofstream...
C++ Как записать строчную букву в заглавную? В первой подпрограмме (formating_1) нужно что-бы программа записала фразу "привет мир. hello world" как "Привет мир. Hello world" по коду ниже, программа меняет только букву "П", а буква "h"... http://www.cyberforum.ru/cpp-beginners/thread1654646.html
Что не так в коде? (парсер текста) C++
есть условие: дан текст, состоящий из предложений, разделенных точками "привет мир. hello world". Напишите программу, что делать такое форматирование: после каждой точки в конце предложения текста...
C++ Книги по ИКТ
Доброго времени суток, уважаемые обитатели. Готовлюсь к региональной олимпиаде по Информационным Компьютерным Технологиям. Прошу у вас помощи, так как надеюсь на вашу осведомленность в этом вопросе....
C++ Lambda expressions only available with -std=c++11 or -std=gnu++11 http://www.cyberforum.ru/cpp-beginners/thread1654587.html
В студии все работает, в qt попробовал mingw - выводит варнинг lambda expressions only available with -std=c++11 or -std=gnu++11 а потом no matching function for call to 'for_each с mvcc...
C++ Использование ассемблера Вообщем есть два файла main.cpp и add.S. Первый содержит код для компилятора g++, а также вызов внешней функции add. Функция add определяется в файле add.S и написана на ассемблере. Для g++ строка... подробнее

Показать сообщение отдельно
vigord
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 16

Инициализация членов в объявлении класса - C++

04.02.2016, 07:54. Просмотров 335. Ответов 6
Метки (Все метки)

В классе:
C++
1
2
3
4
5
6
7
8
class peltier
{
public:
    material p = material('p');
    material n = material('n');
    peltier();
    ~peltier(void);
};
инициализируются два экземпляра класса с помощью параметризированного конструктора (конструктор по умолчанию отсутствует):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class material
{
    float a[4];
    float s[4];
    float k[4];
    float z[4];
public:
    material(char t);
    float polynomial(float p[], float t);
    float sigma(float temp);
    float sigma(float tcold, float thot);
    float alpha(float temp);
    float alpha(float tcold, float thot);
    float kappa(float temp);
    float kappa(float tcold, float thot);
    float Z(float temp);
    float Z(float tcold, float thot);
    ~material(void);
};
В конструкторе и деструкторе выводится сообщение о создании и разрушении объекта.
При выполнении данного кода:
C++
1
2
3
4
5
6
7
8
9
10
11
peltier mod;
    cout << "\nSigma p: " << mod.p.sigma(300) << "\t" << mod.p.sigma(325, 475);
    cout << "\nSigma n: " << mod.n.sigma(300) << "\t" << mod.n.sigma(325, 475);
    cout << "\nAlpha p: " << mod.p.alpha(300) << "\t" << mod.p.alpha(325, 475);
    cout << "\nAlpha n: " << mod.n.alpha(300) << "\t" << mod.n.alpha(325, 475);
    cout << "\nKappa p: " << mod.p.kappa(300) << "\t" << mod.p.kappa(325, 475);
    cout << "\nKappa n: " << mod.n.kappa(300) << "\t" << mod.n.kappa(325, 475);
    cout << "\nZp: " << mod.p.Z(300) << "\t" << mod.p.Z(325, 475);
    cout << "\nZn: " << mod.n.Z(300) << "\t" << mod.n.Z(325, 475) << endl;
    cout << "\nFor thot = 27C: deltaT = " << deltaT(300.f);
    cout << "\nFor thot = 50C: deltaT = " << deltaT(323.f) << endl;
получаю вывод:

p-type material is constructed!
p-type material is constructed!
p-type material is constructed!
p-type material is constructed!
n-type material is constructed!
n-type material is constructed!
n-type material is constructed!
n-type material is constructed!
Sigma p: 1785.06 1223.67
Sigma n: 1353.83 957.71
Alpha p: 159.709 186.921
Alpha n: 188.953 181.451
Kappa p: 1.63412 1.78137
Kappa n: 2.04664 2.27879
Zp: 2.8044 2.39947
Zn: 2.42295 1.46145

For thot = 27C: deltaT = 66.2841
For thot = 50C: deltaT = 75.6507

Почему материал создается четыре раза и ни один раз не разрушается? Что это за копии объектов и как они хранятся? С каким объектом работает программа и при каком условии будут удалены "лишние копии"?

И почему нельзя инициализировать:
C++
1
2
material p('p');
material n('n');
а нужно:
C++
1
2
material p = material('p');
material n = material('n');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru