我有一个while循环作为类的一部分。
#include <iostream>
#include <iomanip>
#include <fstream>
struct familyFinance{ //add 3rd member familyFinance;
int acctNos; float Balance; struct familyFinance *nextNodePointer;
struct familyFinance *dynMemory;
};
using namespace std;
class myFinanceClass {
private:
string fileName="";
familyFinance *ptrHead = nullptr;
public:
void setFileName(string){ fileName="Lab5Data.txt";}
void readFileAndBuildLinkedList(){
ifstream Lab3DataFileHandle;
familyFinance *ptrHead=nullptr;
//familyFinance *dynFinancePtr=nullptr;
familyFinance *tempPtr;
tempPtr=ptrHead;
Lab3DataFileHandle.open(fileName.c_str());
while (!Lab3DataFileHandle.eof( )) {
familyFinance *dynFinancePtr= new familyFinance;
Lab3DataFileHandle >> dynFinancePtr -> acctNos;
Lab3DataFileHandle >> dynFinancePtr -> Balance;
// familyFinance *nextNodePointer = nullptr;
if (ptrHead == nullptr) {
ptrHead = dynFinancePtr;
}
else {
tempPtr = ptrHead;
while (tempPtr -> nextNodePointer != nullptr )
tempPtr = tempPtr->nextNodePointer;
tempPtr->nextNodePointer = dynFinancePtr;
}
}
Lab3DataFileHandle.close();
}
void spitThemOut(){
familyFinance *tempNodePtr;
tempNodePtr = ptrHead;下面是While循环
while (tempNodePtr) {
cout << "Acct, Balance: " << setw(3)
<<ptrHead->acctNos << " " <<ptrHead->Balance << endl;
tempNodePtr = tempNodePtr->nextNodePointer;
}
}当我在main中调用类中的函数时,我知道它可以读取函数,只是不会执行while循环。要执行while循环,我需要更改哪些内容。如果你在答案中举出一个例子,那就更像是学徒了。谢谢您抽时间见我。
发布于 2020-07-26 04:05:23
如果while循环在方法中并在该类中定义,则不会执行,因为语言不允许这样做。类中定义的方法不允许有任何循环。对于类中定义的方法,还有更多的限制。这种情况可以通过在类中声明方法,但在类外部定义它来解决,如下所示
class myFinanceClass {
... // all the code before spitThemOut()
void spitThemOut();
};
void myFinanceClass::spitThemOut() {
... // code to work
while (tempNodePtr) {
...
}
}https://stackoverflow.com/questions/63091165
复制相似问题