精华内容
下载资源
问答
  • 在Java中同类中的静态方法不可以调用类成员变量以及静态方法。 因为因为java中静态的东西是级别的,也就是说用类名就可访问,也可以用任何对象名访问。 ...

    在Java中同类中的静态方法不可以调用类成员变量以及静态方法。
    因为因为java中静态的东西是类级别的,也就是说用类名就可访问,也可以用任何对象名访问。

    展开全文
  • 1. 首先到官网下载http://threadpool.sourceforge.net/2. 包含头文件#include "../boost/threadpool.hpp"3. 声明threadpool对象, boost::threadpool::fifo_pool m_... 声明一个Runnable适配 来包装你的成员
    <?xml version="1.0" encoding="UTF-8"?>
    
    
    1. 首先到官网下载


    2. 包含头文件

    #include "../boost/threadpool.hpp"



    3. 声明threadpool对象, 

    boost::threadpool::fifo_pool m_poolCmdProcess;

    上面声明了一个FIFO线程池, 即先进先出

    4. 声明一个Runnable适配类 来包装你的类及成员函数

                    class Runnable
                    {
                                    typedef boost::function<void (/*CCommunicationMap*, */ICommandContextEx*)> function;

                    private:
                                    function _f;
                                    CCommunicationMap* _target;
                                    ICommandContextEx* _data;

                    public:
                                    template<class F>
                                    Runnable(CCommunicationMap* target, F f, ICommandContextEx* data)
                                    {
                                                    _f = f;
                                                    _target = target;
                                                    _data = data;
                                    }

                                    ~Runnable(){}

                                    void run()
                                    {
                                                    //_target->TestCommand(_data);
                                                    _f(/*_target, */_data);
                                    }
                    };
      

    上面 function 声明了一个函数模板, 此模板应该和你要关联的类成员函数类型一致。

    5. 调用threadpool的schedule方法 启动线程



                                   boost::function<void (/*CCommunicationMap*, */ICommandContextEx*)>     fun;
                                    fun boost::bind(&CCommunicationMap::TestCommand, &m_communication, _1);

                                    Runnable* run = new Runnable(&m_communication,  fun, pContext);

                                     boost::threadpool::schedule(m_poolCmdProcess, boost::shared_ptr<Runnable>(run));


    注意: 
    threadpool库中的pool_adaptors.hpp头文件有错误, 需要我们改动源码(注释的为原来代码,下面的为改动后的代码), 具体为:
        template<typename Pool, typename Runnable>
        bool schedule(Pool& pool, shared_ptr<Runnable> const & obj)
        {          
                                    //return pool->schedule(bind(&Runnable::run, obj));
                                    return pool.schedule(bind(&Runnable::run, obj));
        }          


    展开全文
  • C++ 两个包含互相调用彼此的类成员变量和方法

          在编写C++程序时,有时候我们想在一个类中调用另一个类中的成员变量或方法,比如:两个类 A和B ,A包含B,一般A中调用B中的方法比较简单,重点是子类B如何调用父类A中的成员变量或方法呢?

          如果你选择在A.h和B.h中互相包含头文件,那么肯定会报错,因为检测的时候会出现循环检测引用,所以这个方法是不可取的。

          正确的方式是:

          1、在A.h头文件中包含B.h

          2、在A.h头文件A类中声明一个B类的对象,可以是指针,也可以不是指针

          3、在B.h头文件中用extern声明类A,然后在类B中声明一个A类的指针对象(必须是指针型)

          4、在A.cpp和B.cpp中都只需要包含A.h,B.cpp不需要包含B.h

          5、然后在A.cpp和B.cpp中分别定义A类的对象和B类的对象

          6、将它们的指针分别传给对方的对象。如果是在不同的文件,也可以是this传值,比如在A.cpp中,给B.cpp中的A类对象传递A的当前对象,b->a=this;然后B类中的a就可以调用A类的成员方法了。

          7、最后就可以互相调用彼此的对象了。

    注意:在头文件中最好使用#ifndef #define #endif  ,防止多重定义错误。

         上代码:

    A.h     

    #ifndef _A
    #define _A
    #include "B.h"//A的头文件导入了B的头文件
    
    class A
    {
    public:
    	int a;
    	B* objectb;//A的头文件导入了B的头文件,在调用B的时候就可以不用指针,也可以用指针
    
    public:
    	A();
    	int geta();
    	void handle();
    	void hello();
    };
    
    #endif _A

    B.h

    #ifndef _B
    #define _B
    
    extern class A;//注意1:需要用extern声明A
    
    class B
    {
    public:
    	int b;
    	A* objecta;//注意2:调用A的时候需要用指针
    public:
    	B();
    	int getb();
    	void handle();
    };
    
    #endif _B

    A.cpp

    #include <iostream>
    #include "A.h"
    using namespace std;
    
    A::A()
    {
        this->a=100;
    }
    
    int A::geta()
    {
        return a;
    }
    void A::hello(){
        this->a=500;
        printf("%d\n",a);
    }
    
    void A::handle()
    {
        
        cout<<"in A , objectb.b="<<objectb->getb()<<endl;
    }

    B.cpp

    #include <iostream>
    #include "A.h"//注意3:在B.cpp里面导入A的头文件 ,而不是B的头文件
    
    using namespace std;
    
    B::B()
    {
    	this->b=200;
    }
    
    int B::getb()
    {
    	return b;
    }
    
    void B::handle()
    {
    
    	cout<<"in B , objecta->a="<<objecta->geta()<<endl;
    }
    

    main.cpp
    #include <iostream>
    #include <cstdlib>
    #include "A.h"
    using namespace std;
    
    void main()
    {
    	A a;
    	B b;
    
    	a.objectb = &b;
    	b.objecta = &a;
    	
    	a.hello();
    	a.handle();
    
    	b.handle();
    	system("pause");
    }

    最后附上代码可以下载,我使用的vs2012。点击打开链接


    有问题和建议希望留言提出或者发邮箱给我,虚心倾听学习! 邮箱:1203782828@qq.com



        

        


    展开全文
  • 成员方法中调用成员变量语法格式 : …self .变量名 例: 成员方法中调用成员方法格式 : …self . 方法名(实参1 , 实参2, …) 例 : self : 仅出现在成员方法中 , 指代执行该方法的对象 ...

    成员方法中调用成员变量语法格式 :
    …self .变量名
    例:
    在这里插入图片描述

    成员方法中调用成员方法格式 :
    …self . 方法名(实参1 , 实参2, …)
    例 :
    在这里插入图片描述

    self : 仅出现在成员方法中 , 指代执行该方法的对象

    展开全文
  • link中能否闭包调用成员变量?还是只能调用函数变量?
  • 其实我们从直观上可以很好的理解静态成员函数不能调用非静态成员变量这句话因为无论是静态成员函数还是静态成员变量,它们都是在的范畴之中的,及在的整个生存周期里始终只能存在一份。然而非静态成员变量和非...
  • this关键字调用成员变量和成员方法

    千次阅读 2018-06-02 20:32:15
    this 关键字可以调用类成员变量和成员方法
  • 不是由static修饰的是实例变量,也就是对象成员变量, 对象.变量名 调用 public class Variable { //定义变量 private static String name ;; //定义对象变量 private int age; public static void main...
  • C++ 一个类调用另一个成员变量/成员函数

    万次阅读 多人点赞 2015-12-16 15:44:23
    有时候,两个之间并没有继承的关系,但是其中一个需要引用另一个中的成员变量或者成员函数。怎样办到呢? 假设已经新建了两个A、B。 class A { public: A(); ~A(); public: int nAdd; int add(); ...
  • 首先要明白无论调用成员变量还是方法,都需要主调(主语调用者),其格式为:主调.方法/成员变量 别看我们平时可以直接使用方法名/变量名,其实他们都有默认的前缀。如果是static修饰的,默认名为前缀,没有...
  • python类成员变量和实例成员变量

    千次阅读 2017-05-12 14:52:39
    # python code class Vehicle:  def __init__(self,... self.speed = speed #speed实例成员变量  def drive(self,distance):  print 'need %f hour(s)'% (distance/self.speed) class Bike(Vehicle
  • Java中的静态方法调用静态成员变量

    千次阅读 2015-11-04 09:00:16
    1. 静态方法只能直接调用静态成员(包括变量和方法),而不能直接访问中的非静态成员 2. 静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所...
  • 多态的成员变量调用

    千次阅读 2016-08-17 14:33:27
    1. 多态的成员变量调用的时候只关心引用型变量所属的中是否有被调用的成员变量;...2.以上说的是成员变量,如果是调用成员函数要看的是等号右边即看是由谁创造的 public class Polymophic { public static voi
  • 静态成员函数是共享的函数,而普通成员变量则是所独有的,所以在静态成员函数中调用普通成员变量,最起码直接调用是不可以的。 这是一个小问题,但遇事要慢慢来,不要急。写这篇Blog最主要要提醒自己,凡事必有...
  • 同一个工程调用其他类成员变量非常简单。 如: 定义 Test1.h中申明成员变量 class A { public: double m_fTest; }; Test1.cpp中改变成员变量的值。 m_fTest = 265.78; 然后再B中调用A的成员变量m_fTest,并...
  • 多线程调用类成员变量或者说的内部调用多线程的方式: 方式一: 在的内部声明如下两个函数: //将线程函数定义为的成员函数 void processThread(int val);//线程实际执行功能段代码 std::thread ...
  • 在网上基于对话框的MFC例程中,网上所有例程均将线程函数定义为全局函数,而我在全局函数中需要用到对话框Dlg类成员函数,此时使用This指针。   1)先申请个全局void类型指针: void *pdlg; 2)在dlg ...
  • 界面如下对话框图:框架成员变量index:视图成员变量m_str:button1的响应函数//选择下拉列表的一项,在编辑框中显示出来。其中用到index和m_str void CDialog1::OnBnClickedButton1() { // TODO: 在此添加...
  • class A{ public: void func1() ...想要实现func1产生一个值m,并把这个值通过函数setnumber赋给成员变量a1,然后其他函数func2通过调用getnumber函数得到a1将其赋给b1。这样的功能实现吗???
  • Java一个类调用另一个成员变量

    千次阅读 2020-05-21 09:24:30
    在本中实例化想调用,就可以调用他的成员变量了 public class demo{ String str; int i; public demo(){ str="abc"; } } public class demo1{//在demo1的构造方法中调用demo中的字符串 public demo1(){ ...
  • 在MFC的很多程序中,常常需要在回调函数中调用MFC类成员变量成员函数,亦或者对话框控件的句柄。由于回调函数是基于C编程的Windows SDK的技术,而成员又有this指针客观条件限制...所以在回调函数中不能够...
  • C++类成员变量初始化位置

    千次阅读 2015-09-08 11:29:16
    即使没有具体对象,也能调用类的静态成员函数和成员变量。一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。 在C++中,static静态成员变量不能在的内部初始化。在的内部只是声明,...
  • JAVA中的对象只能调用成员变量和方法吗? Java中的对象可以调用局部变量吗? (新手小白)
  • 1.当派生存在与基类同名的成员变量时候,派生的成员会隐藏基类成员,但派生中存在基类成员的拷贝,要显示的访问BASE::date member #include &lt;iostream&gt; using namespace std; class Base { ...
  • 总是被这些相似的概念搞晕,查阅了资料...java成员变量包括实例变量和变量,成员方法包括实例方法和方法。 那么,什么是实例变量和变量呢? 从名字分析: 实例变量,是新建了实例后才能用的变量。 变量,是
  • mfc中中的成员变量调用问题

    千次阅读 2015-04-03 15:34:45
    最近遇到了一个问题,在VS2010中建立单文档工程,然后里面添加了一个对话框并在对话框...然后在CView调用对话框类中的四个变量进行控制画图操作, 奇怪的是我在CView中定义了对话框类的对象,但是在单击对话框上
  • //实例化一个对象as.setName("A"); //Studeng *b = new Student();Student *b; //实例化一个指针bb = new Student();b-&gt;setName("B");分析:定义对象基本格式是:Student a;...
  • 回调函数中调用类中的非静态成员变量或非静态成员函数 【问题1】如何在中封装回调函数? 【答】:  a.回调函数只能是全局的或是静态的。  b.全局函数会破坏的封装性,故不予采用。  c.静态函数只能访问...
  • 成员变量成员变量又叫实例变量,它是的实例,所作用于所在的整个。 局部变量:只在某个范围有效(例如方法中)。 变量:有效性主要和变量前的修饰符有关,例如private修饰就只对此类有效,public对所有包都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 776,931
精华内容 310,772
关键字:

怎么调用类的成员变量