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

Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) - C++

Восстановить пароль Регистрация
 
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
07.10.2012, 09:10     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #1
Правильно ли написан default конструктор кот инициализует объект как 0 (0/1):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Rational
{
public:
  Rational( );
}
 
 
   Rational::Rational( ) // Default constructor initializes to zero
        {
         top_num = 0;
         bottom_num = 1;
         num = top_num/bottom_num;
         
         return num = 0/1;
        }
Добавлено через 8 минут
а так же конструктор с 2 аргументами, кот может быть использован для установления member переменных объекта с любыми легальными значениями:

C++
1
2
3
4
5
6
7
8
Rational::Rational(int numer, int denom)
        {
          double rational_number;
          
          rational_number = numer/denom;
          
          return (rational_number);                     
        }
конструктор, кот имеет только 1 параметр типа int, вызывает единственный параметр whole_number и определяет конструктор так что объект инициализуется как рациональное число - whole_number/1.
C++
1
2
3
4
5
Rational::Rational(int whole_number)
        {
         int whole_number;
         return (whole_number/1);                      
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 09:10     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1)
Посмотрите здесь:

Как правильно вызвать метод в С++ и как использовать команду goto в default C++
правильно ли написан код в с++? C++
Правильно ли написан класс DigitalTimeException C++
Односвязный список (псевдокод) - поменять два элемента местами (посмотреть, правильно ли написан код) C++
C++ Конструктор, принимающий в качестве аргумента ссылку на объект, всё портит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
07.10.2012, 09:30     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #2
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
return num = 0/1;
Что это за фигня?
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
07.10.2012, 10:41     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #3
C++
1
rational_number = numer/(double)denom;
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
Rational::Rational(int whole_number)
{
int whole_number;
return (whole_number/1);
}
Полнейшая нелепость, как, впрочем, и остальное. Переменные надо сперва объявлять, на единицу ничего делить нет смысла, если функция что-то возвращает, то и объявлена\описана должна быть соответствующе.
Книжку хоть одну читал? Ну, по С++ имеется ввиду...
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
08.10.2012, 00:55  [ТС]     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #4
Читал, но только по английски - может чего и не понял .
Задача звучит так:
Please do Chapter 11 Programming Project 5. This single project will exercise all the items we covered in the lesson. The project is to create and test a class named Rational that can be used to store rational numbers.
A rational number is nothing more than a number than can be represented by a fraction, i.e., the ratio of two whole numbers. A whole number like 100 is represented as: 100/1

A fractional number like 0.5 is represented by: 1/2

Your class will need to store two internal, integer values for each Rational number, the numerator (top) and denominator (bottom) of the fraction. It will have three constructor functions, with zero, one and two arguments, used as follows:

Rational test1, test2(10), test3(1, 2);

The declaration for test1 calls the default (no argument) constructor, which should set the value to 0. (Like any other whole number, zero will have a 1 in the denominator: we cannot divide by zero.) The declaration for test2 calls a constructor with one argument. The value for test2 will be 10, stored as 10 on the top and 1 on the bottom. The declaration for test3 calls the constructor with two arguments. test3 is equal to 0.5, with 1 on the top and 2 on the bottom.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 01:06     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #5
Вы не поняли самого главного. Вам надо хранить числитель и знаменатель отдельно. Как два отдельных поля.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2012, 04:15     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #6
QWERY_2012, конструктор не должен ничего возвращать. Его задача - инициализация полей класса.
Что-то наподобие:
Код
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
class Rational //класс рациональных чисел
{
public:
  Rational( );
  Rational(int t);
  Rational(int t, unsigned int b );
 
private:
    int top_num;
    unsigned int bottom_num;
};
 
 
   Rational::Rational( ) // констуктор ноля
   {
        top_num = 0;
        bottom_num = 1;
   }
   
   Rational::Rational(int t) // констуктор целого числа
   {
        top_num = t;
        bottom_num = 1;
   }
   
   Rational::Rational(int t, unsigned int b ) // конструктор дробного числа
   {
        top_num = t;
        bottom_num = b;
   }
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
08.10.2012, 06:11  [ТС]     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #7
Спасибо огромное!!!

Подскажите, пожалуйста, если можно
хорошую книжку по ООП- где доступно описано понятие
класса и объекта, и как их создавать (на русском желательно ).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 07:13     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1)
Еще ссылки по теме:

В C# создать объект, класс которого написан в C++ C++
Как передавать значения строкового типа в конструктор через объект класса? C++
Правильно ли написан код C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2012, 07:13     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1) #8
Книг масса. Я эту осваивал: Прата "Язык программирования С++. Лекции и упражнения. 2011." Советуют ещё вот эти: Лафоре "ООП в С++.", Харви М. Дейтел, Пол Дж. Дейтел "Как программировать на C++ (2008)."
Yandex
Объявления
08.10.2012, 07:13     Правильно ли написан default конструктор, инициализирующий объект нулем (0/1)
Ответ Создать тему
Опции темы

Текущее время: 04:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru