Не работает код из методички [закрыт]

311
03 июня 2018, 11:40

Скопировал код из методички по 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();
}
Answer 1

Не void main(), а int main(), и

#include "stdafx.h" 

должен идти первой строкой.

Других ошибок, препятствующих компиляции, не наблюдаю.

Что касается правильности самого кода в смысле того, что он должен делать то, что нужно - в этом смысле не смотрел.

READ ALSO
оператор извлечения &gt;&gt; и вставки &lt;&lt;

оператор извлечения >> и вставки <<

Как Перегрузить оператор извлечения >> и вставки << для объектов данного класса

221
QML. Получить элемент при клике

QML. Получить элемент при клике

Как получить элемент на который кликнули? Есть функция ChildAT, но она не возвращает абсолютно любой элемент, если присутствует вложенность(row,column...

174
Алгоритм выхода из лабиринта

Алгоритм выхода из лабиринта

Нужно написать программу, которая находит самый быстрый путь из одной точки к другойЕсть массив, заполненный рандомно 0 и 1

226