原文:C++静态成员函数不能调用非静态成员变量

其实我们从直观上可以很好的理解静态成员函数不能调用非静态成员变量这句话因为无论是静态成员函数还是静态成员变量,它们 都是在类的范畴之类的,及在类的整个生存周期里始终只能存在一份。然而非静态成员变量和非静态成员函数是针对类的对象而言。 然而从本质上来说类的静态成员函数的函数形参中没有默认的this指针,导致不能调用具体实例对象的成员。 下面我们来测试一下: 先在静态成员函数中调用静态成员变量: 调用 ...

2015-07-27 18:00 0 2453 推荐指数:

查看详情

关于C++静态成员函数访问静态成员变量的问题

静态成员函数不能访问静态成员,这是因为静态函数属于类而不是属于整个对象,静态函数中的 member可能都没有分配内存。静态成员函数没有隐含的this自变量。所以,它就无法访问自己类的静态成员 代码如下: class ...

Sat Sep 03 09:33:00 CST 2016 0 3302
静态成员函数调用静态成员变量

今天写程序要用到一个计时器,然后需要创建一个新的线程,这个线程是CtestDLG的一个成员函数,必须定义为静态的.但是这个时候就不能去访问静态成员变量了,这里找到一个很好的解决办法: 先上代码: 1.线程函数的定义: 我们可以看到这个是一个类的成员函数 2.创建线程 ...

Sun Jul 28 00:12:00 CST 2013 0 5746
C++静态成员函数访问静态成员的几种方法

大家都知道C++中类的成员函数默认都提供了this指针,在静态成员函数中当你调用函数的时候,编译器都会“自动”帮你把这个this指针加到函数形参里去。当然在C++灵活性下面,类还具备了静态成员静态函数,即 此时你的test函数只能去访问m_staticA成员,而不能去访问m_a ...

Wed Jan 21 19:23:00 CST 2015 4 39596
c++学习笔记之类和对象(三、static静态成员变量静态成员函数

一、static静态成员变量 对象的内存中包含了成员变量,不同的对象占用不同的内存,这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。是有时候我们希望在多个对象之间共享数据,对象 a 改变了某份数据后对象 b 可以检测到。共享数据的典型使用场景是计数。 在C++中,我们可以使 ...

Thu Jul 11 19:50:00 CST 2019 0 413
C++ 中的静态成员函数静态成员变量

于CSDN 2014-01-17 与静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分。如果要在类外调用公用的静态成员函数,要用类名和域运算符"∷"。如Box∷volume( );实际上也允许通过对象名调用静态成员函数,如a.volume( );但这并不 ...

Mon Oct 28 00:32:00 CST 2019 0 952
C++ 静态成员变量静态成员函数

静态成员变量静态数据成员并不属于某一个类对象,而是整个类,为所有对象共有,下面介绍 静态成员变量静态数据成员的一些特征: 1.静态成员变量的内存分配于全局区,不同于普通的成员变量,当用sizeof()计算类的大小的时候,静态成员变量是不算在里面的,有如下代 ...

Wed Mar 27 06:14:00 CST 2013 0 3977
C++类中的静态成员变量静态成员函数的作用

数据成员可以分为静态变量静态变量两种。 静态成员静态类中的成员加入static 修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,静态成员需要实例化才会分配内存,所以静态成员不能访问静态成员,因为静态成员存在于内存,所以静态成员可以直接访问类 ...

Fri Jul 07 04:11:00 CST 2017 0 3484
C++类中的静态成员变量静态成员函数

最近一直看c++相关的项目,但总是会被c++类中的静态成员变量静态成员函数的理解感觉很是模糊,不明白为什么类中要是用静态成员变量.于是在网上搜集了一些资料,自己再稍微总结下。 静态成员的概念: 静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名 ...

Sun Sep 28 05:55:00 CST 2014 0 24789
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM