debug 编译出错,并且随便修改一处代码就编译成功。

xlshn xlshn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
清理解决方案后,debug编译又出错,是怎么回事。release编译正常。

1>p4221.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Checking::Checking(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double)" (??0Checking@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@N@Z),该符号在函数 _main 中被引用
account.h
#ifndef HEADER_ACCOUNT
#define HEADER_ACCOUNT

#include<string>
using namespace std;
class Account{
string acntNumber;

public:
double balance;
Account(string acntNo,double balan=0);
virtual void display()const;
virtual void withdrawal1();
};
#endif

checking.h
#ifndef HEADER_CHECKING
#define HEADER_CHECKING

#include<iostream>
#include"account.h"
using namespace std;


class Checking:public Account{

public:
Checking(string acntNo,double balan=0.0);

void withdrawal1();
void display()const;

};
#endif

savings.h
#ifndef HEADER_SAVING
#define HEADER_SAVING

#include<iostream>
#include"account.h"
class Savings:public Account{
static int minBalance;
public:
Savings(string acntNo,double balan=0.0):Account(acntNo,balan){}
void display()const;

void withdrawal1();
};
#endif

account.cpp
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
#include"account.h"
Account::Account(string acntNo,double balan):acntNumber(acntNo),balance(balan){}
void Account::display()const{
cout<<"Account:"+acntNumber+"="<<balance<<"\n" ;
}
void Account::withdrawal1(){
ifstream inwithdrawal1("c:\\withdrawal.txt",ios::in);
string acntNo1;int amount1;
for(;inwithdrawal1>>acntNo1>>amount1; )
if(!((acntNo1=="x")&&(amount1==0))){
if(acntNumber==acntNo1){
balance-=amount1;
}
}
}

checkings.cpp
#include"checkings.h"
#include <iostream>
using namespace std;

Checking::Checking(string acntNo,double balan):Account(acntNo,balan){}//,remittance(other)
void Checking::display()const{
cout<<"Checking ";
Account::display();
}


void Checking::withdrawal1(){
Account::withdrawal1();
}

#include"checkings.h"
#include"savings.h"
//#include<iostream>
#include<fstream>
#include<string>
#include<vector>

using namespace std;

int main(){
vector<Savings*> sav;
vector<Checking*> chec;

ifstream in("c:\\p4421.txt",ios::in);
string acntNo;double amount;
for(;in>>acntNo>>amount;)//
{
if(!(acntNo=="x"&&amount==0))
if(!((static_cast<int>(acntNo.find("savings"))==-1)))
{ (sav.push_back(new Savings(acntNo,amount)));}
else
{
(chec.push_back(new Checking(acntNo,amount)));
}





}
for(vector<Savings*>::iterator it=sav.begin();it!=sav.end();++it){
(*it)->display();
(*it)->withdrawal1();
(*it)->display();
}
for(vector<Checking*>::iterator it=chec.begin();it!=chec.end();it++){
(*it)->display();
(*it)->withdrawal1();
(*it)->display();
}
for(vector<Savings*>::iterator it=sav.begin();it!=sav.end();it++)
delete *it;
for(vector<Checking*>::iterator it=chec.begin();it!=chec.end();it++)
delete *it;
system("pause");
}

savings.cpp
#include"savings.h"


int Savings::minBalance=0;

void Savings::display()const{
cout<<"Savings ";
Account::display();
}


void Savings::withdrawal1(){
Account::withdrawal1();
}


p4421.txt
savings123 70000
checking661 20000
savings128 2000
savings131 5000
checking681 200000
checking688 10000
x 0
withdrawal.txt
savings123 5000
savings131 5060
checking661 30000
checking688 1000
x 0
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
xlshn
C++ 语言 65,214 成员 250,514 内容