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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 20:56   #1
Neolit1819
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 51
По умолчанию Ни один конструктор не смог принять исходный тип. c++

Доброго дня. Прошу помощи, прстейшая задача и с простейшим кодом, но видимо где то досадная и не понятная мне пока ошибка.
Код:
class Triangle {
	double a, b;
public:
		double hypot() {return sqrt(a*a+b*b); }
		double area()  {return a*b/2.0; } 

Triangle(double x, double z){
	a=x;
	b=z;
}
}

int _tmain(int argc, _TCHAR* argv[])
{
	Triangle tr(3.4,4.7);

    
	cout << "S= "<<  tr.hypot() <<'\n';
	cout << "area= "<<  tr.area() <<'\n';
	return 0;
}
Во время построения компилятор ругается - Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно. Так как конструткор у меня один, неоднозначности быть не может. стало быть нет подходящего констроктора. Но почему? все же правильно...на мой взгяд)
Neolit1819 вне форума Ответить с цитированием
Старый 30.03.2011, 21:16   #2
vasilisk-green
Пользователь
 
Аватар для vasilisk-green
 
Регистрация: 14.11.2009
Сообщений: 21
По умолчанию

Насколько я помню, в C++ требуется наличие конструктора по-умолчанию.
Например так:
Код:
Triangle() {}
Triangle(double x, double z) : this() { a = x; b = z; }
vasilisk-green вне форума Ответить с цитированием
Старый 30.03.2011, 22:40   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Код:
#include <iostream>
#include <cmath>

using namespace std;

class triangle {
private:
  float
    _a,
    _b;
public:

  triangle(float a, float b) {
    this->_a = a;
    this->_b = b;
  }

  float hypot() {
    return sqrt(_a * _a + _b * _b);
  }
  float area() {
    return (_a * _b / 2);
  }

};

int main() {

  triangle tr(2.3, 4.7);
  
  cout << "s = " << tr.hypot() << endl;

  cout << "\n\n\tPress any key for exit...";
  flushall();
  getchar();
  return 0;
};
всё прекрасно работает, проверил лично
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 30.03.2011, 23:37   #4
Neolit1819
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 51
По умолчанию

RUSt88 благодрю в очередной раз помогаете, благодаря вам я смог понять, что не так в моем коде
Код:
}
вместо
Код:
};
перед маин функцией /facepalm
Neolit1819 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ищу приятного учителя который смог бы меня терпеть и учить =) 4eshirRrskiy Свободное общение 34 14.03.2012 00:26
С++ (конструктор, деструктор, копирующий конструктор) Jane-sad Помощь студентам 2 01.10.2010 10:01
Простое а найти не смог, Хелп Мучитель excel Microsoft Office Excel 84 22.08.2008 12:20
реализовать так, чтобы кандидат смог добавить несколько резюме в базу inret Общие вопросы Delphi 4 07.05.2008 15:46
скрипт, который бы смог забирать почту с почтового сервера (pop3) и обрабатывать ее Hallo PHP 11 21.11.2006 21:18