Скопировал код из методички по C++. Компилятор выдает 91 ошибку. Где я дурак?
Tovar.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class Tovar
{
//атрибуты
string naimenovanie;
int kolichestvo;
double stoimost;
public:
Tovar();//конструктор без параметров
Tovar(string, int, double);//конструктор с параметрами
Tovar(const Tovar&);//конструктор копирования
~Tovar();//деструктор
string get_naimenovanie();//селектор
void set_naimenovanie(string);//модификатор
int get_kolichestvo();//селектор
void set_kolichestvo(int); //модификатор
double get_stoimost();//селектор
void set_stoimost(double); //модификатор
void show();//просмотр атрибутов
};
Tovar.cpp
#include "Tovar.h"
#include <iostream>
#include <string>
#include "stdafx.h"
using namespace std;
//конструктор без параметров
Tovar::Tovar()
{
naimenovanie = "";
kolichestvo = 0;
stoimost = 0;
cout << "Constructor bez parametrov dlia objecta" << this << endl;
}
//конструктор с параметрами
Tovar::Tovar(string N, int K, double S)
{
naimenovanie = N;
kolichestvo = K;
stoimost = S;
cout << "Constructor s parametrami dlia objecta" << this << endl;
}
//конструктор копирования
Tovar::Tovar(const Tovar &t)
{
naimenovanie = t.naimenovanie;
kolichestvo = t.kolichestvo;
stoimost = t.stoimost;
cout << "Constructor copirovania dlia objecta" << this << endl;
}
//деструктор
Tovar::~Tovar()
{
cout << "Destructor dlia objecta" << this << endl;
}
//селекторы
string Tovar::get_naimenovanie()
{
return naimenovanie;
}
int Tovar::get_kolichestvo()
{
return kolichestvo;
}
double Tovar::get_stoimost()
{
return stoimost;
}
//модификаторы
void Tovar::set_naimenovanie(string N)
{
naimenovanie = N;
}
void Tovar::set_kolichestvo(int K)
{
kolichestvo = K;
}
void Tovar::set_stoimost(double S)
{
stoimost = S;
}
//метод для просмотра атрибутов
void Tovar::show()
{
cout << "naimenovanie :" << naimenovanie << endl;
cout << "kolichestvo :" << kolichestvo << endl;
cout << "stoimost :" << stoimost << endl;
}
Lab2_main.cpp
#include "Tovar.h"
#include <iostream>
#include <string>
#include "stdafx.h"
using namespace std;
//функция для возврата объекта как результата
Tovar make_tovar()
{
string s;
int i;
double d;
cout << "Vvedite naimenovanie: ";
cin >> s;
cout << "Vvedite kolichestvo: ";
cin >> i;
cout << "Vvedite stoimost: ";
cin >> d;
Tovar t(s, i, d);
return t;
}
//функция для передачи объекта как параметра
void print_tovar(Tovar t)
{
t.show();
}
void main()
{
//конструктор без параметров
Tovar t1;
t1.show();
//коструктор с параметрами
Tovar t2("Computer", 1, 15000);
t2.show();
//конструктор копирования
Tovar t3 = t2;
t3.set_naimenovanie("Telephon");
t3.set_kolichestvo(2);
t3.set_stoimost(5000.0);
//конструктор копирования
print_tovar(t3);
//конструктор копирования
t1 = make_tovar();
t1.show();
}
Не void main(), а int main(), и
#include "stdafx.h"
должен идти первой строкой.
Других ошибок, препятствующих компиляции, не наблюдаю.
Что касается правильности самого кода в смысле того, что он должен делать то, что нужно - в этом смысле не смотрел.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости