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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2010, 12:11   #1
ilya_t
Новичок
Джуниор
 
Регистрация: 23.08.2010
Сообщений: 2
По умолчанию Ex7_16.cpp. Непонятные функции в ссылочном классе

Изучаю C++ по Айвору Хортону (Visual C++ 2005). У него есть пример Ex7_16.cpp в книге:

Код:
// Ex7_16.cpp : main project file.
// Using scalar properties
#include "stdafx.h"

using namespace System;

// Class defining a person's height
value class Height
{
private:
  // Records the height in feet and inches
  int feet;
  int inches;

  literal int inchesPerFoot = 12;
  literal double inchesToMeters = 2.54/100;

public:
  // Create a height from inches value
  Height(int ins)
  {
    feet = ins / inchesPerFoot;
    inches = ins % inchesPerFoot;
  }

  // Create a height from feet and inches
  Height(int ft, int ins) : feet(ft), inches(ins){}

  // The height in meters
  property double meters                         // Scalar property
  {
    // Returns the property value
    double get() 
    { 
      return inchesToMeters*(feet*inchesPerFoot+inches);
    }

    // You would define the set() function for the property here...
  }

  // Create a string representation of the object
  virtual  String^ ToString() override
  {
    return feet + L" feet "+ inches + L" inches";
  }
};

// Class defining a person's weight
value class Weight
{
private:
  int lbs;
  int oz;

  literal int ouncesPerPound = 16;
  literal double lbsToKg = 1.0/2.2;

public:
  Weight(int pounds, int ounces)
  {
    lbs = pounds;
    oz = ounces;
  }
  
  property int pounds                            // Scalar property
  {
    int get() { return lbs;  }
    void set(int value) {  lbs = value;  }
  }
  
  property int ounces                            // Scalar property
  {
    int get() { return oz;  }
    void set(int value) {  oz = value;  }
  }

  property double kilograms                      // Scalar property
  {
    double get() { return lbsToKg*(lbs + oz/ouncesPerPound);  }
  }

  virtual String^ ToString() override
  { return lbs + L" pounds " + oz + L" ounces"; }
};

// Class defining a person
ref class Person
{
private:
  Height ht;
  Weight wt;

public:
  property String^ Name;                         // Trivial scalar property

  Person(String^ name, Height h, Weight w) : ht(h), wt(w)
  {
    Name = name;
  }

  Height getHeight(){ return ht;  }     //getHeight() - ЧТО ЭТО???
  Weight getWeight(){ return wt;  }   //getWeight() - ЧТО ЭТО???
};

int main(array<System::String ^> ^args)
{
  Weight hisWeight = Weight(185, 7);
  Height hisHeight = Height(6, 3);
  Person^ him = gcnew Person(L"Fred", hisHeight, hisWeight);

  Weight herWeight = Weight(105, 3);
  Height herHeight = Height(5, 2);
  Person^ her = gcnew Person(L"Freda", herHeight, herWeight);

  Console::WriteLine(L"She is {0}", her->Name);
  Console::WriteLine(L"Her weight is {0:F2} kilograms.", 
                                                    her->getWeight().kilograms);
  Console::WriteLine(L"Her height is {0} which is {1:F2} meters.",
                                      her->getHeight(),her->getHeight().meters);

  Console::WriteLine(L"He is {0}", him->Name);
  Console::WriteLine(L"His weight is {0}.", him->getWeight());
  Console::WriteLine(L"His height is {0} which is {1:F2} meters.",
                                       him->getHeight(),him->getHeight().meters);
  Console::ReadKey();
  return 0;
}
В примере используются 3 класса - 2 класса значений и один ссылочный. Вопрос: что такое getHeight() и getWeight() в ссылочном классе Person? В книге автор забыл про это написать
ilya_t вне форума Ответить с цитированием
Старый 23.08.2010, 12:17   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Функции возвращают рост и вес человека
pu4koff вне форума Ответить с цитированием
Старый 23.08.2010, 12:21   #3
ilya_t
Новичок
Джуниор
 
Регистрация: 23.08.2010
Сообщений: 2
По умолчанию

Ок, спасибо, разобрался Всё оказалось очень просто.
ilya_t вне форума Ответить с цитированием
Старый 23.08.2010, 21:10   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Изучаю C++
Изучаете вы Managed C++ (C++ CLI)
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
непонятные слова kupall Общие вопросы Delphi 1 02.06.2010 22:33
непонятные ошибки rapuhabass Общие вопросы C/C++ 3 20.05.2010 06:30
непонятные вриусы... 4444 Безопасность, Шифрование 6 03.06.2008 11:32
непонятные символы XATAB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 28.12.2007 11:23