Пишу программу на языке C++:
#include "stdafx.h"
#include "12.h"
#include<iostream>
#include<math.h>
using namespace std;
void main ()
{
setlocale(LC_ALL, "Russian");
double x, y, b, u;
cout << "Введите x,yn";
cin >> x >> y;
b = pow(x, 2.)*y;
if (b <= 0)
u = tan(x);
else if (b >= 15)
u = fabs(pow(x,exp(1.)) - y);
else
u = x*pow(sin,3.)*x;
cout << "Исходные данныеn";
cout << "x=" << x << "y=" << y << "n";
cout << "Промежуточный результатn";
cout << "b=" << b << "n";
cout << "Окончательный результатn";
cout << "u=" << u << "n";
}
Но в строке else u = x*pow(sin,3.)*x;
выдает две ошибки:
Первая:
Отсутствуют экземпляры перегруженная функция pow, соответствующие
списку аргументов, типы аргументов (<unknown-type>, double
)
Вторая:
Не удается определить экземпляр перегруженная функция sin,
использование которого предполагается
Как их исправить?
задан 6 окт 2015 в 14:45
1
Во-первых, примите за привычку форматировать свой код. Пусть в данной ситуации вам это не сильно поможет, но в будущем вы сможете избежать множества досадных ошибок.
Во-вторых, в строке, в которой ошибка вы в качестве аргумента функции pow
используете функцию sin
. Скорее всего, вы имели ввиду что-то вроде else u = x*pow(sin(x),3.)*x;
, но опечатались.
И ещё: очень рекомендую брать код веток if/else/for/while
в фигурные скобки, даже если там всего одна строка. Сам множество раз сталкивался с ситуациями, когда в такие ветки дописывалась вторая строка, а скобки не ставились, что вело к весьма неприятным ошибкам.
ответ дан 6 окт 2015 в 14:59
fori1tonfori1ton
23.3k3 золотых знака49 серебряных знаков70 бронзовых знаков
2
18.01.2014, 02:19. Показов 56743. Ответов 6
не могу решить проблему
C++ | ||
|
std::getline(out,razdel); — отсутствуют экземпляры перегруженная функция std::getline, соответствующие списку аргументов
c:……kursach.cpp(1): warning C4603: _CRT_SECURE_NO_WARNINGS: макрос не определен или определение изменилось после использования предкомпилированного заголовка
1> Добавление макроопределения в предкомпилированный заголовок вместо определения его здесь
1> c:users5documentsvisual studio 2010projectskursachkursachkursach.cpp(2): использование предкомпилированного заголовка
1>c:……kursach.cpp(85): error C2784: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &): не удалось вывести аргумент шаблон для «std::basic_istream<_Elem,_Traits> &» из «std::fstream»
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(479): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2784: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &): не удалось вывести аргумент шаблон для «std::basic_istream<_Elem,_Traits> &» из «std::fstream»
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(479): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2784: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &): не удалось вывести аргумент шаблон для «std::basic_string<_Elem,_Traits,_Alloc> &» из «char [31]»
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(479): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2780: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem): требует аргументов: 3, имеется: 2
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(468): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2784: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &): не удалось вывести аргумент шаблон для «std::basic_istream<_Elem,_Traits> &&» из «std::fstream»
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(448): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2784: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &): не удалось вывести аргумент шаблон для «std::basic_istream<_Elem,_Traits> &&» из «std::fstream»
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(448): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2784: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &): не удалось вывести аргумент шаблон для «std::basic_string<_Elem,_Traits,_Alloc> &» из «char [31]»
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(448): см. объявление «std::getline»
1>c:……kursach.cpp(85): error C2780: std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem): требует аргументов: 3, имеется: 2
1> c:program files (x86)microsoft visual studio 10.0vcincludestring(395): см. объявление «std::getline»
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.67
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
// stock.h
#ifndef STOCK_H
#define STOCK_H
// declare Stock Class
class Stock
{
private:
string StockExchange;
string Symbol;
string Company;
double Price;
int Shares;
public:
Stock();
Stock(string stockExchange, string symbol, string company, double price, int shares);
void displayStockInfo();
void setStockInfo(string stockExchange, string symbol, string company, double price, int shares);
double getValue();
bool operator < (Stock & aStock);
bool Stock::operator > (Stock & aStock);
};
#endif
[break]
//main.cpp
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
#include "stock.h"
using std::string;
using std::endl;
using std::cout;
using std::setw;
using std::ifstream;
// *******************************
// Stock class
Stock::Stock() {
StockExchange = "";
Symbol = "";
Company = "";
Price = 0.0;
Shares = 0;
}
Stock::Stock(string stockExchange, string symbol, string company, double price, int shares) {
StockExchange = stockExchange;
Symbol = symbol;
Company = company;
Price = price;
Shares = shares;
}
// end Stock class
// *******************************
...
My error says something along the lines of «no instance of overloaded function Stock::Stock(string stockExchange, string symbol, string company, double price, int shares) exists.»
What am I doing wrong? I see it in my header file.
Пишу программу на языке C++:
#include "stdafx.h"
#include "12.h"
#include<iostream>
#include<math.h>
using namespace std;
void main ()
{
setlocale(LC_ALL, "Russian");
double x, y, b, u;
cout << "Введите x,yn";
cin >> x >> y;
b = pow(x, 2.)*y;
if (b <= 0)
u = tan(x);
else if (b >= 15)
u = fabs(pow(x,exp(1.)) - y);
else
u = x*pow(sin,3.)*x;
cout << "Исходные данныеn";
cout << "x=" << x << "y=" << y << "n";
cout << "Промежуточный результатn";
cout << "b=" << b << "n";
cout << "Окончательный результатn";
cout << "u=" << u << "n";
}
Но в строке else u = x*pow(sin,3.)*x;
выдает две ошибки:
Первая:
Отсутствуют экземпляры перегруженная функция pow, соответствующие
списку аргументов, типы аргументов (<unknown-type>, double
)
Вторая:
Не удается определить экземпляр перегруженная функция sin,
использование которого предполагается
Как их исправить?
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukrainian");
float a, b, x, m, r;
cout << "a=";
cin >> a;
if (a >= 3.6)
b = pow ((a - 2.1) / 5);
else b = 3 + (pow(a, 2) / 5);
x = (1.2*pow(b, 3) - exp(fabs(a))) / pow((2 * a - b), 2);
m = atan(fabs(x / pow(a, 2))) - sqrt(2 * a*a*sqrt(3 * x*x));
r = (m / (3 * a)) - (2 * (sin(m*m + pow(a, 4)) / cos(m*m + pow(a, 4)))) / sqrt(fabs(m - a));
cout << "при a=" << a << "b=" << b << "x=" << x << "m=" << m << "r=" << r;
return 0;
}
—————————————————————————————
b = pow ((a - 2.1) / 5)
— Почему подчеркивает pow?