Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2012, 22:03   #1
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию Вопрос об объявлении класса.

Здравствуйте. Вопрос, где, при таком объявлении члена класса А, можно вызвать конструктор?
Код:
#include <iostream>
#include <string>
using namespace std;

class Animal  {
	float Mass;
	string Color;
	int Age;

public:
	Animal();
	Animal(float, string, int);
	float GetMass();
	int GetAge();
	string GetColor();} A;

float Animal::GetMass() {return Mass;}

int Animal::GetAge() {return Age;}

string Animal::GetColor() {return Color;}

//Конструктор класса без параметров.
	Animal::Animal() {
		cout<<"Enter date:\nMass: "; cin>>Mass;
		cout<<"\nColor: "; cin>>Color;
		cout<<"\nAge: "; cin>>Age;}

//Конструктор класса с параметрами.
Animal::Animal(float FN, string LN, int A) {
	Mass = FN;
	Color = LN;
	Age = A;}

void main() {		
		cout<<"Mass of A = "<<A.GetMass;
		cout<<"Age of A = "<<A.GetAge;
		cout<<"Color of A = "<<A.GetColor;
		system ("pause");}
Prin53 вне форума Ответить с цитированием
Старый 30.09.2012, 23:53   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Конструктор вызывается автоматически. Да и зачем его вызывать явно.

Но если уж так надо то:

Код:
class Test
{
private:
    int data;
public:
    Test() { }
    Test(int inData)
    {
        data = inData;
    }
    void Print() const
    {
        cout << "Hello: " << data << endl;
    }
}a,b;

int main()
{
    a.Test::Test(10); // Вызов конструктора
    b = Test(30) // Создание объекта без имени и копирование своих значений в объект b (в данном случае 30)
    a.Print(); // Будет выведено 10
    b.Print(); // Будет выведено 30
    cin.get();
    return 0;
}
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 01.10.2012 в 00:05.
kineziz вне форума Ответить с цитированием
Старый 01.10.2012, 08:02   #3
Prin53
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 59
По умолчанию

Цитата:
Сообщение от kineziz Посмотреть сообщение
Конструктор вызывается автоматически. Да и зачем его вызывать явно.
Премного благодарен, разобрался.
Prin53 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при объявлении переменных mishev Общие вопросы C/C++ 20 23.08.2012 20:19
Ошибка при объявлении массива(Ordinal type expected). Leshii Паскаль, Turbo Pascal, PascalABC.NET 12 31.07.2012 21:03
Ошибка при объявлении файла записей bogdanidze Помощь студентам 2 13.05.2011 08:26
Ошибка в объявлении переменных Superlotles Помощь студентам 1 17.12.2009 17:05
Вопрос насчёт класса TStringList!!! KAMENYKA Компоненты Delphi 4 06.12.2007 14:49