0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 29

В коде возникли ошибки при переходе с Visual studio 2013 на Visual studio 2017

29.07.2017, 18:48. Показов 4438. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, решил попробовать поменять свою 2013 студию на 2017 и заметил такую проблему, при открытии проектов 13 года и даже копирования кода из 13 в 17 возникает огромный ряд ошибок, которых в 13 версии не было, скрины прилагаю, помогите разобраться что я не так сделал
ClientData.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef CLIENTDATA_H
#define CLIENTDATA_H
#include <string.h>
class ClientData {
public:
    ClientData(int = 0, string = "", string = "", double = 0.0);
    ~ClientData();
 
    string getLastName()const;
    void setLastName(const string&);
 
    string getFirstName()const;
    void setFirstName(const string&);
 
    int getAccountNumber()const;
    void setAccountNumber(const int);
 
    double getBalance()const;
    void setBalance(const double);
 
private:
    char firstName[10];
    char lastName[15];
    int accountNumber;
    double balance;
 
};
#endif

ClientData.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <iomanip>
#include <string>
#include "ClientData.h"
using namespace std;
 
 
ClientData::ClientData(int accountNumberValue, string lastNameValue, string firstNameValue, double balanceValue)
{
    setAccountNumber(accountNumberValue);
    setBalance(balanceValue);
    setFirstName(firstNameValue);
    setLastName(lastNameValue);
}
ClientData::~ClientData()
{
    cout << "Destructor object ClientData has call\n";
}
 
string ClientData::getLastName()const {
    return lastName;
}
void ClientData::setLastName(const string &lastNameString) {
    const char *lastNameValue = lastNameString.data();
    int lenght = (lastNameString.size()<15 ? lastNameString.size() : 14);
    strncpy(lastName, lastNameValue, lenght);
    lastName[lenght] = '\0';
}
 
string ClientData::getFirstName()const {
    return firstName;
}
void ClientData::setFirstName(const string &firstNameString) {
    const char *firstNameValue = firstNameString.data();
    int lenght = (firstNameString.size()<10 ? firstNameString.size() : 9);
    strncpy(firstName, firstNameValue, lenght);
    firstName[lenght] = '\0';
}
 
int ClientData::getAccountNumber()const {
    return accountNumber;
}
void ClientData::setAccountNumber(const int accountNumberValue) {
    accountNumber = accountNumberValue;
}
 
double ClientData::getBalance()const {
    return balance;
}
void ClientData::setBalance(const double balanceValue) {
    balance = balanceValue;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstdlib>
#include "ClientData.h"
 
using namespace std;
 
void createEmpyClientData(ofstream&);
 
int main() {
    setlocale(LC_ALL, "Russian");
    ofstream outCredit("credit.dat", ios::binary);
    ClientData bankClient;
    createEmpyClientData(outCredit, bankClient);
 
 
 
 
 
    return 1;
}
 
void createEmpyClientData(ofstream& outCredit, ClientData& bankClient) {
    if (!outCredit) {
        cerr << "File could not be opened." << endl;
        exit(1);
    }
 
    for (int i = 0; i < 100; i++)
    {
        outCredit.write(reinterpret_cast<const char*>(&bankClient), sizeof(ClientData));
    }
}
Список ошибок
1>------ Сборка начата: проект: Bank client credit, Конфигурация: Release Win32 ------
1>main.cpp
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(6): error C2061: синтаксическая ошибка: идентификатор "string"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(9): error C3646: getLastName: неизвестный спецификатор переопределения
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(9): error C2059: синтаксическая ошибка: (
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(9): error C2238: непредвиденные лексемы перед ";"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(10): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(10): error C2143: синтаксическая ошибка: отсутствие "," перед "&"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(12): error C3646: getFirstName: неизвестный спецификатор переопределения
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(12): error C2059: синтаксическая ошибка: (
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(12): error C2238: непредвиденные лексемы перед ";"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(13): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(13): error C2143: синтаксическая ошибка: отсутствие "," перед "&"
1>main.cpp(15): error C2660: createEmpyClientData: функция не принимает 2 аргументов
1>ClientData.cpp
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(6): error C2061: синтаксическая ошибка: идентификатор "string"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(9): error C3646: getLastName: неизвестный спецификатор переопределения
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(9): error C2059: синтаксическая ошибка: (
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(9): error C2238: непредвиденные лексемы перед ";"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(10): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(10): error C2143: синтаксическая ошибка: отсутствие "," перед "&"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(12): error C3646: getFirstName: неизвестный спецификатор переопределения
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(12): error C2059: синтаксическая ошибка: (
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(12): error C2238: непредвиденные лексемы перед ";"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(13): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(13): error C2143: синтаксическая ошибка: отсутствие "," перед "&"
1>ClientData.cpp(9): error C2511: ClientData::ClientData(int,std::string,s td::string,double): перегруженная функция-член не найдена в "ClientData"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(4): note: см. объявление "ClientData"
1>ClientData.cpp(10): error C2352: ClientData::setAccountNumber: недопустимый вызов нестатической функции-члена
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(16): note: см. объявление "ClientData::setAccountNumber"
1>ClientData.cpp(11): error C2352: ClientData::setBalance: недопустимый вызов нестатической функции-члена
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(19): note: см. объявление "ClientData::setBalance"
1>ClientData.cpp(12): error C2664: "void ClientData::setFirstName(const int)": невозможно преобразовать аргумент 1 из "std::string" в "const int"
1>ClientData.cpp(12): note: Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
1>ClientData.cpp(13): error C2664: "void ClientData::setLastName(const int)": невозможно преобразовать аргумент 1 из "std::string" в "const int"
1>ClientData.cpp(13): note: Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
1>ClientData.cpp(20): error C2039: getLastName: не является членом "ClientData"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(4): note: см. объявление "ClientData"
1>ClientData.cpp(20): error C2270: getLastName: модификаторы недопустимы для функций, не являющихся членами
1>ClientData.cpp(21): error C2065: lastName: необъявленный идентификатор
1>ClientData.cpp(23): error C2511: void ClientData::setLastName(const std::string &): перегруженная функция-член не найдена в "ClientData"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(4): note: см. объявление "ClientData"
1>ClientData.cpp(26): error C2597: недопустимая ссылка на нестатический член "ClientData::lastName"
1>ClientData.cpp(27): error C2597: недопустимая ссылка на нестатический член "ClientData::lastName"
1>ClientData.cpp(27): error C3867: "ClientData::lastName": нестандартный синтаксис; используйте "&", чтобы создать указатель на член
1>ClientData.cpp(27): error C2109: для индекса требуется массив или указатель
1>ClientData.cpp(30): error C2039: getFirstName: не является членом "ClientData"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(4): note: см. объявление "ClientData"
1>ClientData.cpp(30): error C2270: getFirstName: модификаторы недопустимы для функций, не являющихся членами
1>ClientData.cpp(31): error C2065: firstName: необъявленный идентификатор
1>ClientData.cpp(33): error C2511: void ClientData::setFirstName(const std::string &): перегруженная функция-член не найдена в "ClientData"
1>e:\general\yandexdisk\программирование \c++\project_c++\bank client credit\bank client credit\ClientData.h(4): note: см. объявление "ClientData"
1>ClientData.cpp(36): error C2597: недопустимая ссылка на нестатический член "ClientData::firstName"
1>ClientData.cpp(37): error C2597: недопустимая ссылка на нестатический член "ClientData::firstName"
1>ClientData.cpp(37): error C3867: "ClientData::firstName": нестандартный синтаксис; используйте "&", чтобы создать указатель на член
1>ClientData.cpp(37): error C2109: для индекса требуется массив или указатель
1>Сборка проекта "Bank client credit.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Миниатюры
В коде возникли ошибки при переходе с Visual studio 2013 на Visual studio 2017  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2017, 18:48
Ответы с готовыми решениями:

Ошибки с Шаблонами в Visual Studio 2013
Доброго времени суток, что означают следующие ошибки? и как их можно исправить? //Stack.h #include &lt;iostream&gt; using...

Ошибка при запуске Box2d Visual Studio 2013
Добрый день! Подскажите. Пытаюсь запустить Box2d. Суть проблемы в следующем. Со сборкой библиотеки проблем нет. Проблема заключается в...

Работа с сокетами, ошибка при компиляции в Visual Studio 2013
Помогите пожалуйста в чем ошибка? // Server_new_chat.cpp : Defines the entry point for the console application. // #pragma...

3
Заблокирован
29.07.2017, 18:50
Лучший ответ Сообщение было отмечено Infernet как решение

Решение

Цитата Сообщение от Infernet Посмотреть сообщение
C++
1
2
3
4
5
6
#ifndef CLIENTDATA_H
#define CLIENTDATA_H
#include <string.h>
class ClientData {
public:
    ClientData(int = 0, string = "", string = "", double = 0.0);
А что такое string?
1
0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 29
29.07.2017, 19:00  [ТС]
String это шаблонный строковый класс, от стандартной библиотеки c++, по книге изучаю и там он используется активно взамен char*
http://cppstudio.com/post/6110/
0
Заблокирован
29.07.2017, 19:01
Infernet, отлично.

Теперь сравни код по ссылке со своим.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.07.2017, 19:01
Помогаю со студенческими работами здесь

MS Visual Studio 2013 Express при компиляции программа открывается и сразу закрывается
Вот код: #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Hello&quot; &lt;&lt; ; system(&quot;pause&quot;); return 0; ...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ?
скажите а где найти среду 2006 года? или можно использовать 2015 год?

Visual Studio 2017
как сделать чтобы не показывало расположение файла

Visual Studio 2017
Я пишу программу и комменитирую её и начинаю делать 2 задание, но иногда программа компилирует 1 задание и не видит 2 помогает пересоздание...

Ошибки при build в Visual Studio
Здравствуйте. Пытаюсь освоить Visual Studio и столкнулся со следующей проблемкой. При вызове функции build в выходят ошибки как на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
Собеседование по Node.js - вопросы и ответы
Reangularity 20.05.2025
Каждому разработчику рано или поздно приходится сталкиватся с техническими собеседованиями - этим стрессовым испытанием, где решается судьба карьерного роста и зарплатных ожиданий. В этой статье я. . .
Cython и C (СИ) расширения Python для максимальной производительности
py-thonny 20.05.2025
Python невероятно дружелюбен к начинающим и одновременно мощный для профи. Но стоит лишь заикнуться о высокопроизводительных вычислениях — и энтузиазм быстро улетучивается. Да, Питон медлительнее. . .
Безопасное программирование в Java и предотвращение уязвимостей (SQL-инъекции, XSS и др.)
Javaican 19.05.2025
Самые распространёные векторы атак на Java-приложения за последний год выглядят как классический "топ-3 хакерских фаворитов": SQL-инъекции (31%), межсайтовый скриптинг или XSS (28%) и CSRF-атаки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru