如何在一个类中去控制另外一个类的变量?
在MFC中是不是不很支持c++语法?
在一个类中是不是不能控制,修改另一个类的静态变量?
如:
class a
{
public:
static int s;
};
class b
{
public:
void f();
};
int a::s = 0;
void b::f()
{
a::s = 2;
}
在c++中可以但是在MFC中好象不行。请高手指教。
在另一个类中声明该类然后调用该类的静态变量
MFC本来就主要用C++编写的,肯定完全支持C++。你这种VC里也支持的,可能你的一个类变量在另一个文件定义,你要使用,就用到extern
是不是类定义在不同文件中?
试试下面的代码:
// File A.h
class a
{
public:
static int s;
};
// File A.cpp
#include A.h
int a::s = 0;
// File B.h
class b
{
public:
void f();
};
// File B.cpp
#include A.h
#include B.h
class a;
void b::f()
{
a::s = 2;
}
友元类
友元类可以的!!!!
#include <stdio.h>
class a
{
public:
static int s;
};
class b
{
public:
void f();
};
int a::s = 0;
void b::f()
{
a::s = 2;
}
int main()
{
b *pb=new b;
printf("%d\n",a::s);
pb->f();
printf("%d\n",a::s);
return 0;
}
也许我没理解你的意思,不过MFC是完全支持C++的
是不是应该先在B类的头文件中先声明A,再创建对象.或者你试下将变量类型改成extern.
直接创建对象引用就可以了