c++没有实例化的类成员访问

c++没有实例化的类成员访问 比如要调用没有实例化的类中的一个函数,可以用 类名::函数名(); 的方式调用吗?

如果你要调用的这个函数是这个类的静态函数(static函数)的话,类名::函数名()这样调用是可以的,如果它不是静态函数的话,你必须通过创建一个类的实例,再通过其实例访问其成员函数。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-17
楼上说的是正确的,给个例子,
#include <iostream>
using namespace std;

class A
{
public:
static void fun()
{
cout << "static fun" << endl;
}
void fun1()
{
cout << "fun1" << endl;
}
};

int main()
{

A::fun();
//A::fun1();这个是不可以的,
A a;
a.fun1();//这两个都可以
a.fun();
getchar();
return 0;
}

原因:
静态成员是属于类本身的,不属于对象,
在内存中依然存在了,而非静态成员在没有对象实例化之前是没有的,

请问C++中不实例化一个类能否直接调用它的成员方法
很明显,这是可以的。类方法可以通过类名或实例来进行访问,这是语法规定。一个类的方法,不关是通过类名或是实例访问,不关访问多少次它们指向的始终是同一段代码。

C++中,可以在不建立对象的情况下调用类成员吗?
静态的成员变量和函数存在全局段,整个程序只有一份,所以可以直接用类名来引用。非静态的是没有空间的,只有实例化一个对象的时候才会有空间,所以不能用类名来引用,只能用对象来引用。举个例子:class A { public:int x;static int y;};A a, b;a.x = 10;b.x = 20;如果你用类来引用x,...

为什么类成员函数不能直接调用
静态成员函数主要为了调用方便,不需要生成对象就能调用,静态数据成员也遵守public\/protected\/private访问规则。静态成员函数只能访问类的静态变量,而类的成员函数也可以访问类的静态变量,这样就可以通过静态成员变量建立类的静态成员函数和类对象的关联关系。而普通的全局函数没有这个作用。我建议你去看看这篇...

C++ 创建一个对象后 为什么他说此声明没有存储类型或类型说明符
C *c;只是声明了一个对象指针,没有实际的对象被创建应改为:C *c = new C;

构造函数的有参和无参的区别,构造函数的参数是派什么用场的?
类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。如果没有为对象提供构造函数,则默认情况下 C# 将创建一个构造函数,该构造函数实例化对象,并将所有成员变量设置系统指定的默认值。静态类和结构也可以有构造函数。

Java内部类的修饰符有哪些?
可能试图把makeInner()方法修饰为静态方法,即static public void makeInner()。这样不创建外部类就可以实例化外部类了!但是在一个静态方法里能访问非静态成员和方法吗?显然不能。它没有this引用。没能跳出那条规则!但是如果在这个静态方法中实例化一个外部类对象,再用这个对象实例化外部类完全可以!...

类的设计,构造函数和析构函数 c\/c++
问,也可以被其他已经实例化的类中函数访问。当然,这也有例外的情况,这 是以后要讨论的友元函数。类中默认的数据类型是private,结构中的默认类型是public。一般情况下,变 量都作为私有成员出现,函数都作为公有成员出现。类中还有一种访问控制符protected,叫保护成员,以后再说明。4.初始化 在声明一...

类和对象有什么关系?
使用类时的注意事项:1、类的成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。2、类定义必须以分号“;”结束。3、类与结构体的区别:没有明确指定类成员的访问权限时,C++结构体的成员是公有的,而类的成员是私有的。

实例成员和类成员的区别
2.类成员 类成员(静态成员)需要用关键字static标识,类成员包括,类成员变量和类成员方法,类成员是隶属于类的,意思是说通过类名可以直接访问类成员变量或调用类成员方法,即使没有创建对象,也能够引用类成员 二、类变量和实例变量的区别:1、声明的差别:没有使用static声明的为实例成员属性,用static...

抽象类和接口都没有构造方法
在这个过程中,如果子类没有提供构造方法或者提供的构造方法没有显式地调用父类的构造方法,那么抽象类的构造方法不会被调用。因此,抽象类的构造方法主要用于初始化实例字段和非抽象方法,它的作用范围比较广。抽象类和接口的运用要求 标准c++没有abstract关键字,代之使用纯虚类实现类似的功能,详见词条“...

相似回答
大家正在搜