Скопировал код из методички по 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"
должен идти первой строкой.
Других ошибок, препятствующих компиляции, не наблюдаю.
Что касается правильности самого кода в смысле того, что он должен делать то, что нужно - в этом смысле не смотрел.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как Перегрузить оператор извлечения >> и вставки << для объектов данного класса
Как получить элемент на который кликнули? Есть функция ChildAT, но она не возвращает абсолютно любой элемент, если присутствует вложенность(row,column...
Нужно написать программу, которая находит самый быстрый путь из одной точки к другойЕсть массив, заполненный рандомно 0 и 1