VC++ 新建MFC中如何对 自己定义的成员函数进行申明和定义?

RT能举个例子最感激了我要画图,编了个函数DDALIne()voidCTestVIew::DDALIne(){(代码省)}是直接把这段代码放到TestVIew.cpp后面... RT 能举个例子 最感激了
我要画图,编了个函数DDALIne()
void CTestVIew::DDALIne()
{
(代码省)
}

是直接把这段代码放到TestVIew.cpp后面吗? 是不是要对这个函数进行申明和定义呢?怎么操作?
展开
 我来答
wangjin427
2010-12-07 · TA获得超过202个赞
知道答主
回答量:110
采纳率:0%
帮助的人:17.8万
展开全部
VC++ 2008中可以运行的代码:
------------------------------------------------------
#pragma warning(disable:4786)
#include <string>
#include <iostream>
using namespace std;

#include <cstdlib>
#include <fstream>
using namespace std;

#include <cstring>
using namespace std;

struct Data
{
string name;
int age;
string work;
double account;
}

int main()
{
//打开输入文件并测试是否成功
string inputfilename;
cout << "Enter inputfilename for output: " << endl;
cin >> inputfilename;

ifstream lastins( inputfilename.c_str(), ios::in );

if ( !lastins )
{
cerr<< "*** ERROR: Cannot open for input. "<<endl;
return EXIT_FAILURE;
}

int Originallinecount = 2000;

//分配内存空间
Data* d = new Data[ Originallinecount ];

char middlestring[ 100 ];

//从文件中提取数据并放到自定义的结构数组中
if ( !lastins.eof() )
{
for ( int i = 0; i < Originallinecount; i++ )
{
lastins.get( middlestring, 100, '|' );
middlestring[ 99 ] = '\0';
d[ i ].name = middlestring;
lastins.ignore( 1, '|' );
......等等,均为数据提取
}
}

lastins.close();

//调用结构数组的数据...
{
}

delete[] d;

return 0;
}

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
在MFC中,我把上面的代码改为一个函数,代码如下:
-------------------------------------------------------------
在CView.h中加入:
------------------------------
#include <string>
using namespace std;

struct Data
{
string name;
int age;
string work;
double account;
}

// 提取文本文件的数据,并返回结构数组
Data* MakeDataArray(string inputfilename, int Originallinecount );

--------------------------------------------------------------------------------------------
在CView.cpp中加入:(注:已经在出错的位置注上错误原因)
---------------------------------------------------------

#include <fstream>
using std::ifstream;

#include <string>
using namespace std;

// 提取文本文件的数据,并返回结构数组
Data* CView::MakeDataArray(string inputfilename, int Originallinecount ) //错误1:error C2143: 语法错误 : 缺少“;”(在“*”的前面)
//错误2:error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

{ //错误3: error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
//错误4:error C2556: “int *CView::MakeDataArray(std::string,int)”: 重载函数与“CView::Data *CView::MakeDataArray(std::string,int)”只是在返回类型上不同
//错误5: error C2371: “CView::MakeDataArray”: 重定义;

//打开输入文件并测试是否成功
ifstream lastins( inputfilename.c_str(), ios::in );

if ( !lastins )
{
MessageBox( _T( "ERROR: Can not open the file"));
}

//分配内存空间
Data* d = new Data[ Originallinecount ];

char middlestring[ 100 ];

//从文件中提取数据并放到自定义的结构数组中
if ( !lastins.eof() )
{
for ( int i = 0; i < Originallinecount; i++ )
{
lastins.get( middlestring, 100, '|' );
middlestring[ 99 ] = '\0';
d[ i ].name = middlestring;
lastins.ignore( 1, '|' );
......等等,均为数据提取
}
}

lastins.close();

return *d;
}

void CView::RenderScene(void)
{
Data* datum = MakeDataArray( inputfilename, Originallinecount ); //inputfilename是在控件中加入

//数据处理...
}

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
问题:2,如果换成引用又如何?

我将Data* CView::MakeDataArray(string inputfilename, int Originallinecount )
-----------------------------------------------------------------------------------
在 CView.h:改为:
-----------------------------------------
void MakeDataArray(string inputfilename, int Originallinecount, Data &dataRef )

----------------------------------------------------
在CView.cpp中:
-----------------------
void CView::MakeDataArray(string inputfilename, int Originallinecount, Data &dataRef )
{
//代码同上,只去除 “return *d;”而加上:

&dataRef = d; //错误1:error C2106: “=”: 左操作数必须为左值
}

void CView::RenderScene(void)
{
Data datum;
MakeDataArray( inputfilename, Originallinecount ); //inputfilename是在控件中加入

//数据处理...
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
cqljpv
2010-12-08 · TA获得超过1404个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:413万
展开全部
1.在ResourceView中选中要删除的对话框,按Delete键;
2.在FileView中删除对话框相关类文件(例如CMyDlg.h和CMyDlg.cpp),并删除所有引用(#include "MyDlg.h").
3.在程序代码中删除对话框相关类的对象及其操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
索罗斯qas
2010-12-10 · TA获得超过1051个赞
知道小有建树答主
回答量:533
采纳率:0%
帮助的人:289万
展开全部
1.在ResourceView中选中要删除的对话框,按Delete键;
2.在FileView中删除对话框相关类文件(例如CMyDlg.h和CMyDlg.cpp),并删除所有引用(#include "MyDlg.h").
3.在程序代码中删除对话框相关类的对象及其操作
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自美国认真的兔子
2010-12-08 · TA获得超过644个赞
知道小有建树答主
回答量:550
采纳率:100%
帮助的人:426万
展开全部
请参考C++基本语法相关内容。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式