首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类中的while循环不会执行c++

类中的while循环不会执行c++
EN

Stack Overflow用户
提问于 2020-07-26 01:09:52
回答 1查看 79关注 0票数 1

我有一个while循环作为类的一部分。

代码语言:javascript
运行
复制
#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循环

代码语言:javascript
运行
复制
  while (tempNodePtr) {


    cout << "Acct, Balance: " << setw(3)
         <<ptrHead->acctNos << " " <<ptrHead->Balance << endl;
 tempNodePtr = tempNodePtr->nextNodePointer;
  }
}

当我在main中调用类中的函数时,我知道它可以读取函数,只是不会执行while循环。要执行while循环,我需要更改哪些内容。如果你在答案中举出一个例子,那就更像是学徒了。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-26 04:05:23

如果while循环在方法中并在该类中定义,则不会执行,因为语言不允许这样做。类中定义的方法不允许有任何循环。对于类中定义的方法,还有更多的限制。这种情况可以通过在类中声明方法,但在类外部定义它来解决,如下所示

代码语言:javascript
运行
复制
class myFinanceClass {
    ...    // all the code before spitThemOut()
    void spitThemOut();
};

void myFinanceClass::spitThemOut() {
    ... // code to work
    while (tempNodePtr) {
        ...
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63091165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档