gpt4 book ai didi

c++ - 收集 2 :ld returned 1 exit status error

转载 作者:行者123 更新时间:2023-11-28 07:22:07 24 4
gpt4 key购买 nike

<分区>

我正在编写基本的 C++ 代码来练习使用 fstream 和头文件。我不断收到以下错误:

initializer.cpp:(.text+0xd9): undefined reference to `DataSet::DataSet(int, std::basic_string, std::allocator >, std::basic_string, std::allocator >, double)' collect2: ld returned 1 exit status

主要内容:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include "dataset.h"
using namespace std;

int main()
{
ofstream outData("data.txt",ios::binary);

if(!outData)
{
cerr<<"\nFile could not be opened!\n";
exit(1);
}

DataSet blankData;

for(int i=0;i<100;i++)
outData.write(reinterpret_cast<const char *>(&blankData),
sizeof(DataSet));

return 0;
}

和标题:

#ifndef DATASET_H
#define DATASET_H

#include <string>
using namespace std;

class DataSet
{
public:
DataSet(int=0,string="",string="",double=0.0);

void setAccountNumber(int);
int getAccountNumber() const;

void setLastName(string);
string getLastName() const;

void setFirstName(string);
string getFirstName() const;

void setBalance(double);
double getBalance() const;
private:
int accountNumber;
char lastName[15];
char firstName[10];
double balance;
};

#endif

和相应的.cpp:

#include <string>
#include "dataset.h"

DataSet::DataSet(int accountNumberValue,
string lastNameValue,string firstNameValue,
double balanceValue)
{
setAccountNumber(accountNumberValue);
setLastName(lastNameValue);
setFirstName(firstNameValue);
setBalance(balanceValue);
}

int DataSet::setAccountNumber(int accountNumberValue)
{
accountNumber=accountNumberValue;
}

void DataSet::getAccountNumber() const
{
return accountNumber;
}

string DataSet::setLastName(string lastNameString)
{
const char *lastNameValue=lastNameString.data();
int length=lastNameString.size();
length=(length<15?length:14);
strncpy(lastName,lastNameValue,length);
lastName[length]='\0';
}

void DataSet::getLastName() const
{
return lastName;
}

string DataSet::setFirstName(string firstNameString)
{
const char *firstNameValue=firstNameString.data();
int length=firstNameString.size();
length=(length<10?length:9);
strncpy(firstName,firstNameValue,length);
firstName[length]='\0';
}

void DataSet::getFirstName() const
{
return firstName;
}

double DataSet::setBalance(double balanceValue)
{
balance=balanceValue;
}

void DataSet::getBalance() const
{
return balance;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com