标题:还是老问题,我想在同一个头文件下声明不同文件的两个函数然后在主程序中调 ...
只看楼主
Mylovcat666
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-9-2
结帖率:50%
已结贴  问题点数:20 回复次数:2 
还是老问题,我想在同一个头文件下声明不同文件的两个函数然后在主程序中调用,可是老是显示函数未声明!
我写了两个函数,一个是showmenu函数用来显示菜单,另外一个是addPerson添加联系人,然后在头文件Method.h中声明
这是showmenu
程序代码:
#include <iostream>
#include "Method.h"
using namespace std;


void  showmenu(){
           cout<<"********************"<<endl;
           cout<<"*** "<<"1.添加联系人"<<" ***"<<endl;
           cout<<"*** "<<"2.显示联系人"<<" ***"<<endl;
           cout<<"*** "<<"3.删除联系人"<<" ***"<<endl;
           cout<<"*** "<<"4.查找联系人"<<" ***"<<endl;
           cout<<"*** "<<"5.修改联系人"<<" ***"<<endl;
           cout<<"*** "<<"6.清空联系人"<<" ***"<<endl;
           cout<<"*** "<<"0.退出通讯录"<<" ***"<<endl;
           cout<<"********************"<<endl;
}

这是addPerson.cpp
程序代码:
#include <iostream>
#include <string>
#include "Method.h"
#define MAX 1000
using namespace std;


void addPerson(AddressBooks*abs){


        if(abs->m_Size==MAX){

            cout<<"name"<<endl;

            return ;
        }
        else if(abs->m_Size<MAX){

            //添加具体联系人信息

            //姓名
            string name;

            cout<<"请输入姓名:"<<endl;

            cin>>name;

            abs->personArray[abs->m_Size].m_Name=name;
            //性别
            //年龄
            //电话
            //地址

        }


}

这是Method.h
程序代码:
#ifndef METHOD_H_INCLUDED
#define METHOD_H_INCLUDED
#include <string>
#include <iostream>
using namespace std;


void showmenu();
void addPerson(AddressBooks*abs);


#endif // METHOD_H_INCLUDED

我就是想在Method.h声明两个函数,然后在main方法中使用。
可是编译报错显示
Method.h|9|error: variable or field 'addPerson' declared void
是在不懂是怎么回事,是我哪里写错了么,谢谢各位大佬指正,小弟刚学。
搜索更多相关主题的帖子: include 声明 函数 cout 联系人 
2022-09-03 21:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
AddressBooks 是什么,声明在哪里?
2022-09-04 12:01
Mylovcat666
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-9-2
得分:0 
这个原来是写在主程序里的,现在我把它复制到addPerson.cpp里
这是主程序,原来是把AddressBooks的结构体放里面,后面又移到AddPerson.cpp里面,这样行么
程序代码:
#include <iostream>
#include <string>
#include "Method.h"
#define MAX 1000
using namespace std;


int main(){


    //创建通讯录结构体变量
    AddressBooks abs;
    //初始化通讯录当中当前人员个数
    abs.m_Size=0;

    int select=0;
    while(true){
               showmenu();
               cin>>select;

        switch(select){
            case 1:
                addPerson(&abs);//利用地址传值,可以修改实参
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 0:
                cout<<"欢迎下次再使用"<<endl;
                system("pause");

                break;
                return 0;
            }


    }



}

这是就是把AddressBooks结构体放到AddPerson.cpp里。
程序代码:
#include <iostream>
#include <string>
#include "Method.h"
#define MAX 1000
using namespace std;

struct Person{
    //姓名
    string m_Name;

    //性别

    int m_Sex;
    //年龄

    int m_Age;
    //电话

    string m_Phone;
    //地址

    string  m_Addr;

};

//设计通讯录结构体

struct  AddressBooks{


//通讯录保存的最大人数
    struct Person personArray[MAX];

//通讯录当前记录联系人的个数
    int m_Size;
};



void addPerson(AddressBooks*abs){


        if(abs->m_Size==MAX){

            cout<<"name"<<endl;

            return ;
        }
        else if(abs->m_Size<MAX){

            //添加具体联系人信息

            //姓名
            string name;

            cout<<"请输入姓名:"<<endl;

            cin>>name;

            abs->personArray[abs->m_Size].m_Name=name;
            //性别
            //年龄
            //电话
            //地址

        }


}

就会在报错里提示error: variable or field 'addPerson' declared void|
2022-09-04 16:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509947-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.427727 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved