C++ 结构体与类指针

上一章中, 我们已经了解到了普通指针的基础使用方式, 但是知道结构体与类中的指针是如何使用的吗? 就来介绍一下

如果本章的内容不适合你, 可以查看 C++指针目录

在结构体或类中, 指针访问其成员函数或变量通过 "->" 运算符或者看代码注释部分, 注释部分的操作不推荐:

#include <iostream>
#include <cstring>
using namespace std;
struct STRUCT
{
    string hello;
};
int main()
{
    STRUCT *str=new STRUCT;
    str->hello="Hello";//或者可以写成: (*str).hello="Hello"
    cout<<str->hello<<endl;//或者可以写成: cout<<(*str).hello<<endl;
    delete str;
    return 0;
}
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 class CLASS
 5 {
 6 public:
 7     string hello;
 8 };
 9 int main()
10 {
11     CLASS *str=new CLASS;
12     str->hello="Hello";//同理
13     cout<<str->hello<<endl;//同理
14     delete str;
15     return 0;
16 }

备注: class中的public不可以省, struct中public可以省  ( 属于语法部分, 不做解释 )

关于类与结构体的指针都是这样操作 (无论是哪种数据类型),

注意: 一定要给结构体或类指针声明空间, 否则输出可能会是乱码或没有输出, 本人更建议使用智能指针, 免得申请释放空间

推荐查看: C++智能指针

其它指针的内容, 推荐查看这里

原文地址:https://www.cnblogs.com/tweechalice/p/11441714.html

时间: 2024-08-29 04:22:09

C++ 结构体与类指针的相关文章

仿函数--创建结构体或类的内部函数指针

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

Swift结构体与类

在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之.而Swift语言却非常重视结构体,把结构体作为实现面向对象的重要手段.Swift中的结构体与C++和Objective-C中的结构体有很大的差别,C++和Objective-C中的结构体只能定义一组相关的成员变量,而Swift中的结构体不仅可以定义成员变量(属性),还可以定义成员方法.因此,我们可以把结构体看做是一种轻

Runtime的初步认识——结构体与类

Runtime的初步认识 Runtime的初步认识 Runtime介绍 类与结构体的关系 结构体解析 结构体的作用 Runtime介绍 学习一个东西至少要先知道它是个啥,你一定听说过"运行时是 Objective-C 的一个特色",这里的"运行时"就是指 runtime 了. runtime是在自 iOS 平台开放并基于 Objective-C 语言开发后的一个编程语言上的高级技术. 学习runtime的目的并不是为了开发,而是让你更好的理解 Objective-C

C++结构体 和类

1 #include <iostream> 2 using namespace std; 3 4 struct father 5 { 6 /* 7 virtual bool set() = 0; 8 virtual bool get() = 0; 9 */ 10 11 virtual bool set(int a, int b) = 0; 12 virtual bool get(int a, int *b) = 0; 13 14 }; 15 struct jack :public father

Swift:什么时候使用结构体和类

发布于 2015 年 8 月 14 日 世界上对swift持续不断的讨论话题中有一个就是什么时候使用结构体什么时候使用类.我想我今天要贡献一些自己的想法. 值 VS 引用 答案其实很简单:当你需要值语义(所谓值语义是一个对象被系统标准的复制方式复制后,与被复制的对象之间毫无关系,可以彼此独立改变互不影响)的时候使用结构体,当你需要引用语义(所谓值语义是一个对象被系统标准的复制方式复制后,与被复制的对象之间毫无关系,可以彼此独立改变互不影响)的时候使用类.就是那样! 欢迎下周再来... 等等! 怎

结构体和类的区别,联系

结构体和类的共同点: 都可以将多个数据封装为一个整体 结构体和类的不同点: 结构体只能封装数据,而类还可以封装行为: 结构体实例是值类型,类实例是对象类型 结构体实例存储在栈空间,类实例存储在堆空间 结构体变量赋值是值拷贝,类实例赋值是指针引用 应用场景: 如果封装的这个数据,不仅有数据还有方法,只能使用类, b. 如果表示实体,没有行为,光有属性, i.     如果属性较少,只有几个的情况下,就定义为结构体,分配在栈,提高运行效率 ii.     如果属性较多,就不要定义为结构体,因为这样结

结构体与类的区别

C/C++结构体的区别 C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数. C++中的结构体和类的异同: 一.相同之处:结构体中可以包含函数:也可以定义public.private.protected数据成员:定义了结构体之后,可以用结构体名来创建对象.但C中的结构体不允许有函数: 也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数. 二.不同之处:结构

结构体与类的说明与演示

结构体与类的唯一区别在于,结构体的默认成员函数为public,而类的默认成员函数为private. 一个结构体的演示: #include <iostream> using namespace std; struct A { int x; int x1; }; A &sum(A a1,A a2) { A *p=new A; //建立新空间地址给指针p p->x=a1.x*a2.x; //函数功能 p->x1=a1.x1*a2.x1; //函数功能 return *p; //返

file结构体中private_data指针的疑惑【转】

本文转载自:http://www.cnblogs.com/pengdonglin137/p/3328984.html hi all and barry, 最近在学习字符设备驱动,不太明白private_data在字符驱动中的作用,我们在 驱动中添加一个设备结构体,然后定义了这个结构体的全局指针变量,接着我们就能在 驱动程序中使用这个指针了.我看到很多驱动程序中都把结构体指针付给private_data, 然后对private_data操作. 为什么要使用private_data,难道仅仅是避免使