小弟刚刚学习VC++,所以试着编写类。但不知错在哪里啊?// OUTNUM.h: interface for the OUTNUM class.
//
//////////////////////////////////////////////////////////////////////#if !defined(AFX_OUTNUM_H__C2E71B21_6E00_11D7_A247_0050FC000001__INCLUDED_)
#define AFX_OUTNUM_H__C2E71B21_6E00_11D7_A247_0050FC000001__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000class OUTNUM
{
private:
int OUT_NUM;
public:
OUTNUM(int n);
virtual ~OUTNUM();
OUTGET(int x);
};#endif // !defined(AFX_OUTNUM_H__C2E71B21_6E00_11D7_A247_0050FC000001__INCLUDED_)
//////////////////////////////////////////////////////////////////// OUTNUM.cpp: implementation of the OUTNUM class.
//
//////////////////////////////////////////////////////////////////////#include "stdafx.h"
#include "MFC1.h"
#include "OUTNUM.h"#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////OUTNUM::OUTNUM(int n)
{
if (n > 0 & n < 3)
{OUT_NUM = 1;}
else if (n > 3 & n < 18)
{OUT_NUM = 2;}
else if (n > 18 & n < 70)
{OUT_NUM = 3;}
else if (n > 70 & n < 163)
{OUT_NUM = 4;}
else if (n > 163 & n < 293)
{OUT_NUM = 5;}
else if (n > 293 & n < 466)
{OUT_NUM = 6;}
else if (n > 466 & n < 743)
{OUT_NUM = 7;}
else if (n > 743 & n < 1137)
{OUT_NUM = 8;}
else if (n > 1137 & n < 1624)
{OUT_NUM = 9;}
else if (n > 1624 & n < 2215)
{OUT_NUM = 10;}
else if (n > 2215 & n < 2809)
{OUT_NUM = 11;}
else if (n > 2809 & n < 3471)
{OUT_NUM = 12;}
else if (n > 3471 & n < 4104)
{OUT_NUM = 13;}
else if (n > 4104 & n < 4708)
{OUT_NUM = 14;}
else if (n > 4708 & n < 5269)
{OUT_NUM = 15;}
else if (n > 5269 & n < 5747)
{OUT_NUM = 16;}
else if (n > 5747 & n < 6112)
{OUT_NUM = 17;}
else if (n > 6112 & n < 6380)
{OUT_NUM = 18;}
else if (n > 6380 & n < 6621)
{OUT_NUM = 19;}
else if (n > 6621 & n < 6805)
{OUT_NUM = 20;}
else if (n > 6805 & n < 6935)
{OUT_NUM = 21;}
else if (n > 6935 & n < 7033)
{OUT_NUM = 22;}
else if (n > 7033 & n < 7091)
{OUT_NUM = 23;}
else if (n > 7091 & n < 7139)
{OUT_NUM = 24;}
else if (n > 7139 & n < 7175)
{OUT_NUM = 25;}
else if (n > 7175 & n < 7191)
{OUT_NUM = 26;}
else if (n > 7191 & n < 7206)
{OUT_NUM = 27;}
else if (n > 7206 & n < 7216)
{OUT_NUM = 28;}
else if (n > 7216 & n < 7221)
{OUT_NUM = 29;}
else if (n > 7221 & n < 7226)
{OUT_NUM = 30;}
else
{OUT_NUM = 0;}
}
OUTNUM::OUTGET(int x)
{
x=OUT_NUM;
}
OUTNUM::~OUTNUM()
{}/////////////////////////////////////////////////////////////////////
OUTNUM OUTN(n);
OUTN.OUTGET(rn);
if (rn<0)
{MessageBox("<0");}
else
{MessageBox(">0");} OUTN.~OUTNUM();
为什么不是我期待的结果啊?
//
//////////////////////////////////////////////////////////////////////#if !defined(AFX_OUTNUM_H__C2E71B21_6E00_11D7_A247_0050FC000001__INCLUDED_)
#define AFX_OUTNUM_H__C2E71B21_6E00_11D7_A247_0050FC000001__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000class OUTNUM
{
private:
int OUT_NUM;
public:
OUTNUM(int n);
virtual ~OUTNUM();
OUTGET(int x);
};#endif // !defined(AFX_OUTNUM_H__C2E71B21_6E00_11D7_A247_0050FC000001__INCLUDED_)
//////////////////////////////////////////////////////////////////// OUTNUM.cpp: implementation of the OUTNUM class.
//
//////////////////////////////////////////////////////////////////////#include "stdafx.h"
#include "MFC1.h"
#include "OUTNUM.h"#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////OUTNUM::OUTNUM(int n)
{
if (n > 0 & n < 3)
{OUT_NUM = 1;}
else if (n > 3 & n < 18)
{OUT_NUM = 2;}
else if (n > 18 & n < 70)
{OUT_NUM = 3;}
else if (n > 70 & n < 163)
{OUT_NUM = 4;}
else if (n > 163 & n < 293)
{OUT_NUM = 5;}
else if (n > 293 & n < 466)
{OUT_NUM = 6;}
else if (n > 466 & n < 743)
{OUT_NUM = 7;}
else if (n > 743 & n < 1137)
{OUT_NUM = 8;}
else if (n > 1137 & n < 1624)
{OUT_NUM = 9;}
else if (n > 1624 & n < 2215)
{OUT_NUM = 10;}
else if (n > 2215 & n < 2809)
{OUT_NUM = 11;}
else if (n > 2809 & n < 3471)
{OUT_NUM = 12;}
else if (n > 3471 & n < 4104)
{OUT_NUM = 13;}
else if (n > 4104 & n < 4708)
{OUT_NUM = 14;}
else if (n > 4708 & n < 5269)
{OUT_NUM = 15;}
else if (n > 5269 & n < 5747)
{OUT_NUM = 16;}
else if (n > 5747 & n < 6112)
{OUT_NUM = 17;}
else if (n > 6112 & n < 6380)
{OUT_NUM = 18;}
else if (n > 6380 & n < 6621)
{OUT_NUM = 19;}
else if (n > 6621 & n < 6805)
{OUT_NUM = 20;}
else if (n > 6805 & n < 6935)
{OUT_NUM = 21;}
else if (n > 6935 & n < 7033)
{OUT_NUM = 22;}
else if (n > 7033 & n < 7091)
{OUT_NUM = 23;}
else if (n > 7091 & n < 7139)
{OUT_NUM = 24;}
else if (n > 7139 & n < 7175)
{OUT_NUM = 25;}
else if (n > 7175 & n < 7191)
{OUT_NUM = 26;}
else if (n > 7191 & n < 7206)
{OUT_NUM = 27;}
else if (n > 7206 & n < 7216)
{OUT_NUM = 28;}
else if (n > 7216 & n < 7221)
{OUT_NUM = 29;}
else if (n > 7221 & n < 7226)
{OUT_NUM = 30;}
else
{OUT_NUM = 0;}
}
OUTNUM::OUTGET(int x)
{
x=OUT_NUM;
}
OUTNUM::~OUTNUM()
{}/////////////////////////////////////////////////////////////////////
OUTNUM OUTN(n);
OUTN.OUTGET(rn);
if (rn<0)
{MessageBox("<0");}
else
{MessageBox(">0");} OUTN.~OUTNUM();
为什么不是我期待的结果啊?
解决方案 »
- SendMessage的问题
- static Destroy(); 提示“缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int” ???
- 拷贝构造函数的问题
- 为什么我的recordset无法重新绑定??
- 那位大哥详细讲一下怎么开发代理服务器的思路和用的一些API
- office下的 .WMF图片旋转问题
- 急急急!!!!我急需200年度高级程序员试题及答案!!!!
- 各位, 有没有人做过解析html语言的,请进入
- 我写了一个SDI程序,我想把其自动生成的底部状态栏高度变大,最好每一栏的字体也能变大,请教高手!
- 一个基类的指针赋以派生类对象后,用DELETE删除会有内存泄露吗?
- 菜鸟初学vc,我在窗体上放了两个radio,一个标题是‘男’,另一个标题是‘女’,还有一个button,怎么实现当用户选种标题是‘男’的那个rad
- 怎样在vc中建立installshield?请高手赐教.
两个&!
CString strx;//姓氏
int n;//定位
int rn; GetDlgItem(IDC_EDITALLTEXT)->GetWindowText(t_text);
GetDlgItem(IDC_EDITFIRST)->GetWindowText(strx); n=t_text.Find(strx,0);
OUTNUM OUTN(n);
OUTN.OUTGET(rn);
if (rn<0)
{MessageBox("<0");}
else
{MessageBox(">0");} OUTN.~OUTNUM();怎么永远<0 呢?
看看n、t_text和strx对不对?!
{
*x=OUT_NUM;
}调用用OUTN.OUTGET(&rn); 应该可以了!
CString str;
str.Format("%d",n);
AfxMessageBox(str);
把这句插到要可能有问题的地方
然后运行...
很容易清楚问题在哪的
OUTNUM::OUTGET(int& x) // 注意这里的 & 符号
{
x=OUT_NUM;
}
注意函数传递的参数类型,形参和值参是不同的。
加了&表示是引用,表示这个传递的变量数值是可以被改变得。
如果不加,表示传递的就是一个固定数值,在函数体内部改动这个数值有效,出了函数体就没有意义了。