精华内容
下载资源
问答
  • 易语言取类指针的三方法源码,取类指针的三方法,子程序1,调用类的第三函数,指针到整数,取类指针,取类指针1,测试类指针函数,方法2,方法3
  • c++内引用另一个类指针

    千次阅读 2019-05-15 17:23:39
    需要在一个类内添加另一个的方法,使用类指针的形式实现 main.cpp #include <iostream> #include "Class1.h" int main() { Class1 *p_class1 = new Class1(); p_class1->set(); int n = p_class1-&...

    需要在一个类内添加另一个的方法,使用类指针的形式实现

    main.cpp

    #include <iostream>
    #include "Class1.h"
    
    int main()
    {
    	Class1 *p_class1 = new Class1();
    	p_class1->set();
    	int n = p_class1->get_n();
    	return 0;
    }

    Class1.h

    #pragma once
    #include "Class2.h"
    #include <windows.h>
    class Class1
    {
    public:
    	Class1();
    	virtual ~Class1();
    private:
    	Class2 *pClass2 = NULL;
    public:
    	int get_n();
    	int set();
    };
    
    

    Class1.cpp

    #include "Class1.h"
    
    
    
    Class1::Class1()
    {
    	pClass2 = new Class2();
    }
    
    
    Class1::~Class1()
    {
    	delete pClass2;
    }
    
    int Class1::get_n()
    {
    	int n_t = pClass2->get_n();
    	return n_t;
    }
    int Class1::set()
    {
    	int x = 5;
    	pClass2->set_n(x);
    	return 0;
    }

    Class2.h

    #pragma once
    class Class2
    {
    public:
    	Class2();
    	virtual ~Class2();
    public:
    	int get_n();
    	int set_n(int n);
    private:
    	int m_n;
    };
    
    

    Class2.cpp

    #include "Class2.h"
    
    
    
    Class2::Class2()
    {
    }
    
    
    Class2::~Class2()
    {
    }
    int Class2::get_n()
    {
    
    	return m_n;
    }
    int Class2::set_n(int n)
    {
    	m_n = n;
    	return 0;
    }

     

    展开全文
  • 比如已有一个类class A, 再定义一个类class B,这样在B的定义,就可以有一个A*类型的成员变量。比如class B{ A * a;};这里的B::a就是一个A*类型的指针。需要注意的是,要使用这种形式的定义,要么A的定义在B的上方...

    直接定义即可。比如已有一个类class A, 再定义一个类class B,这样在B的定义中,就可以有一个A*类型的成员变量。
    比如
    class B
    {
    A * a;

    };
    这里的B::a就是一个A*类型的指针。
    需要注意的是,要使用这种形式的定义,要么A的定义在B的上方,要么在B定义前加一个A类的声明。

    class A;
    class B
    {
    A * a;

    };

    二、

    类名 *指针名;
    如 在一个类中定义指向另外一个类的指针:
    class A {
    public:
    A();
    ~A();
    .....

    B *pt; //这个就是你要的,直接定义就好,但是记得要包含类B 的头文件

    }
    追问
    那如何给改指针分配动态内存?
    追答
    我是这么做的:
    pt = new B;
    这个是在A的构造函数里面定义的,别忘记在A的析构函数里面: if(B)delete pt;
    追问
    thanks!如果b的构造函数有1个int型的参数,那就是pt = new B(5);对不对?那这个动态内存的分配能直接放在类里面吗?我试过不行啊,后来放到函数里面动态分配才行。为什么
    追答
    直接放到类里面肯定是不行的,因为类里面是不允许初始化的。

    展开全文
  • c++的类与类指针

    千次阅读 多人点赞 2018-08-30 14:55:50
    转自:https://www.cnblogs.com/yedushusheng/p/5524043.html 代码: Student a; s.setName("A"); //Studeng *b = new Student(); Student *b;...定义对象基本格式是:Student ...

    转自:https://www.cnblogs.com/yedushusheng/p/5524043.html


    代码:

    Student a; 
    s.setName("A");
    
    //Studeng *b = new Student();
    Student *b;
    b = new Student();
    b->setName("B");

    分析:

    定义类对象基本格式是:Student a;在定义之后就已经为a这个对象分配了内存,且为内存栈

    定义类指针基本格式是:Student *b = new Student();在定义*b的时候并没有分配内存,只有执行new后才会分配内存,且为内存堆

    问题:

    (1)类对象和类指针区别

    A: 定义

    ——类对象:利用类的构造函数(构造函数:对类进行初始化工作)在内存中分配一块区域(包括一些成员变量赋值);

    ——类指针:是一个内存地址值,指向内存中存放的类对象(包括一些成员变量赋值;类指针可以指向多个不同的对象,这就是多态);

    B: 使用

    ——引用成员:对象使用“.”操作符,指针用“->”操作符;

    ——生命周期:若是成员变量,则由类的析构函数来释放空间;若是函数中临时变量,则作用域是函数体内;而指针则需要利用delete在相应的地方释放分配的内存块。

    注意:new与delete成对存在!!!

    C: 存储位置

    ——类对象:用的是内存栈,是个局部的临时变量;
    ——类指针:用的是内存堆,是个永久变量,除非你释放它。

    D: 多态

    ——指针可以实现多态,直接用对象不行。

    F: 访问方式

    ——指针变量是间接访问,但可实现多态(通过父类指针可调用子类对象),并且没有调用构造函数;
    ——直接声明可直接访问,但不能实现多态,声明即调用了构造函数(已分配了内存)。

    (2)类对象和类指针联系

    ——在类的声明尚未完成的情况下,可以声明指向该类的指针,但是不可声明该类的对象;
    ——父类的指针可以指向子类的对象。

    (3)指针与多态

    ——有前面可知:类指针是一个指向内存中存放类对象的内存地址值,那么这个指针可以指向多个不同的对象,这就是多态;

    拓展:指针与虚函数
    ——要发挥虚函数的强大作用,必须使用指针来访问对象。

    ——当类是有虚函数的基类,Func是它的一个虚函数,则调用Func时:
    类对象:调用的是它自己的Func;
    类指针:调用的是分配给它空间时那种类的Func。

    (4)什么情况使用类对象与类指针?

    ——其实作用基本一样 都是为了调用类的成员变量和成员函数用的;
    ——当你希望明确使用这个类的时候,最好使用对象;

    如果你希望使用C++中的动态绑定,则最好使用指针或者引用,指针和引用用起来更灵活,容易实现多态等。

    (5)指针好处
    ——第一,实现多态。
    ——第二,在函数调用,传指针参数。不管你的对象或结构参数多么庞大,你用指针,传过去的就是4个字节。如果用对象,参数 传递占用的资源就太大了

    展开全文
  • 1.在一个类中定义另一个类的对象,则程序...在一个类中定义另一个类指针,需要在主类里面初始化指针,如 A* p=new A(),之后该指针可以调用其的成员变量,仅限公有变量,若想访问私有变量,需要将指针设置成友元。

    1.在一个类中定义另一个类的对象,则程序运行时该类的对象自动调用其构造函数初始化,然后其主类才调用构造函数初始化

    2.在一个类中定义另一个类的指针,需要在主类里面初始化指针,如
    A* p=new A(),之后该指针可以调用其类的成员变量,仅限公有变量,若想访问私有变量,需要将对象设置成友元。

    展开全文
  • 一、Java一个类调用另一个类中的方法 方法1. 新建一个类。然后在调用类中先进行被调用实例化,然后通过实例化的对象访问。 方法2.新建一个类,将该类中需要被调用的方法设置为静态(static)。然后在调用...
  • 使用C++的时候免不了会遇到类中需要指针成员的时候,但成员里面一出现指针就很容易一不小心碰上各种各样的麻烦,尤其需要注意的是对象的初始化和赋值,下面总结了一些常见解决办法。先来看看这样一个类:#...
  • C++ 类中函数指针使用

    千次阅读 2021-04-17 14:33:50
    文章目录函数指针用法类中的成员函数接收函数指针情况1情况2情况3总结 函数指针用法 函数指针可以作为一个函数的参数,传不同的函数指针给这个函数就可以让其实现不能的功能。从而我们可以复用这个函数剩余的大部分...
  • C++成员函数指针使用介绍

    万次阅读 多人点赞 2019-09-21 16:07:49
    前言 在之前写过的博客有介绍过函数指针指针函数的区别和简单用法(文章在这里),当时的Demo...所以如果是C++的成员函数指针使用方法是有区别的,这里针对不同的场景做补充说明。 成员函数的指针(非...
  • C++类中指针

    千次阅读 2020-04-09 10:49:23
    在C++,每一个对象都能通过this指针来访问自己的地址。this指针是所有成员变量的隐含参数。在函数内部,this指针可以用来指向调用对象。 注意:友元函数没有this指针,友元不是的成员,只有成员函数才有this指针...
  • error:没有合适的默认构造函数可用 ,一般也是这个问题括号分为两种,括号[]或小括号()。为方便说明,定义指针类型为class test,... 这时ptest得到的是一个对象*ptest, 释放时使用delete ptest;2 带有括号时,...
  • 在公司写了一个工具使用@Resource注解注入对象,运行起来后报空指针异常。 如下图,因为有些原因无法将其写到Controller当中,而ParameterValueDao又是其他子工程的,所以更改配置文件很麻烦。 解决方法...
  • 类中使用指针和引用

    2012-03-21 21:08:06
    学会在类中使用指针,包括类中指针(数组)数据成员、指向对象的指针、指向数据成员的指针、指向成员函数的指针
  • 1.首先关于定义时能不能自己的对象
  • 一个spring中一个普通(@component)注入bean报空指针的错误异常信息代码错误原因原因正确获得对象 异常信息 这里我向webmagic的pipeline使用@Autowired注入一个ElasticsearchRestTemplate 对象,在启动spider...
  • 括号分为两种,括号[]或小括号()。为方便说明,定义指针类型为class test, 指针为... 这时ptest得到的是一个对象*ptest, 释放时使用delete ptest;2 带有括号时,在中括号需要有一个正整数参数。ptest = new t
  • #include <iostream> #include <vector> #include <cmath> using namespace std; class c1 { public: int c; }; class aa { int a; c1 *pc; public: aa(c1 *p) ... co...
  • 这次内容要说的当的成员函数做为谓词时,是什么样子的,如何使用呢? 类中一共会有三种函数:1.非静态非虚函数 非静态非虚函数的函数指针,因为成员函数里面会传递this指针,所以就算是函数指针,也必须有对象来...
  • C++类中指针初始化注意问题

    千次阅读 2018-09-01 11:12:06
    C++类中指针初始化注意问题 首先了解一下编译器自动生成的赋值函数和operator =函数, 如果你成员变量没有指针那么没什么问题,自带的copy函数会逐bits 的copy,但是如果你类中定义了指针那么问题大了,他会很傻傻...
  • C++成员指针

    千次阅读 2019-04-21 20:46:35
    成员指针时指可以指向的非静态成员的指针,一般情况下,一个指针指向一个对象,但是成员指针指示的是的成员,而非类的对象。指向的静态成员的指针和普通指针没有什么区别。 数据成员指针 与普通指针不同的...
  • 由于的非静态成员函数一个隐形的this指针,因此,的成员函数的指针和一般函数的指针的表现形式不一样。 1、指向一般函数的指针函数指针的声明就包括了函数的参数类型、顺序和返回值,只能把相匹配的函数...
  • 类中函数的一个隐含参数--this指针

    千次阅读 2017-03-11 19:29:26
    为什么会有this指针呢?我们需要来看段代码感受一下。#include using namespace std; class Student { public: void InitStudent(char *name,char*gender,int age) { strcpy(_name,name); stcpy(_gender,...
  • 在C++有好几个这样的术语,但是我们很多时候的并不正确,几乎是互相替换混淆使用。下面我想彻底辨清几个术语,这样就可以避免很多概念上的混淆和使用上的错误。这几个词是: ...表示的是一个指针,...
  • 1、1)指针:他是一个内存地址值,他指向内存存放的对象(包括一些成员变量所赋的值)   2)对象,他是利用的构造函数在内存分配一块内存(包括一些成员变量所赋的值).  2、在应用时:   1)引用...
  • c++创建一个指向自己的类指针

    千次阅读 2018-02-28 19:50:58
    class A { public: private: A *pA;//合法 A dosomething( A&...}这个是别人给出的答案,我再加一个:A &amp;iA;也不合法会提示: error: constructor for 'Test' must explicitly initialize the referen...
  • 大多数c++采用以下三种方法之管理指针成员: 1、指针成员采取常规指针型行为。这样的具有指针的所有缺陷但无需特殊的复制控制。 2、可以实现所谓的“智能指针”行为。指针所指向的对象是共享的,但...
  • 可以类中Public 成员指针指向私友成员。 这时外部的成员可以操作Public成员指针,间接的操作私成员。#include &lt;iostream&gt; using namespace std; class A { int a;//private public : int b...
  • 在该课程,当定义Node时,在该内部定义了一个Node类型的指针,那么它有什么作用呢? class Node { public: int data; Node *next; } 如果你不用Node的指针,那么意味着当你通过Node来指向链表的下...
  • Qt内部有一个类型指针

    千次阅读 2017-04-21 22:27:30
    个指针是私有的,其他访问不到,可以通过这个指针做一些设置。
  • 类对象与类指针

    万次阅读 多人点赞 2018-12-06 21:04:02
    ... 类对象:Student s1 类指针:Student *s2 (1)定义对象实例时,分配了内存,指针变量...(2)类的指针:他是一个内存地址值,他指向内存存放的类对象(包括一些成员变量所赋的值).   对象:他是利用类的构造...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,007,204
精华内容 402,881
关键字:

一个类中的指针怎么用