社区
C++ 语言
帖子详情
急问 c++ 的运算符 “.*”和“->*”的用法非常之感谢
hjdlp
2007-04-06 04:35:21
#include <iostream>
using namespace std;
class integer{
public:int *p;
integer (int a)
{
*p=a;
}
};
int main()
{
integer d(5);
d.*p;
}
编译总是错误说p没有定义?不知道为什么,急请教
...全文
305
15
打赏
收藏
急问 c++ 的运算符 “.*”和“->*”的用法非常之感谢
#include using namespace std; class integer{ public:int *p; integer (int a) { *p=a; } }; int main() { integer d(5); d.*p; } 编译总是错误说p没有定义?不知道为什么,急请教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangzhangyong411
2007-04-10
打赏
举报
回复
LZ是SB
hjdlp
2007-04-09
打赏
举报
回复
谢谢,明白了呵呵
wdz609
2007-04-07
打赏
举报
回复
看看我写的那段程序就应该能明白.*,->*是来做什么用的吧? 呵呵。C++ primer上也有讲道:使用指向类成员的指针-13.6.2这一章节。
merlinfang
2007-04-06
打赏
举报
回复
*(d.p);
liran1229
2007-04-06
打赏
举报
回复
在一本书上看见有.* 说的是取成员指针操作符
->*是指针取成员操作符
但是测试不行。不明白ing ;
二类*d.p 段错误
lz说的成员指针是这样的
比如你定义一个类
class A{
public:
double a;
};
double Box::* h;//声明一个类成员的指针指向类成员a
void main(){
A b;
doube l;
l=b.*h;
A *c;
l=c->*l;
};
C334745710
2007-04-06
打赏
举报
回复
顶
freshui(五月的风)
就是这样,你写 int*p;
没有显式让它指向地址,那么它就可能指向任何地址,
你再*p=a;你想十什么啊!!!!!!!危险!!!!!!!!
wdz609
2007-04-06
打赏
举报
回复
#include "Defines.h"
class A
{
public:
A(int a)
{
//m_p = new int(a);
}
A()
{
//m_p = new int (0);
}
~A()
{
//delete m_p;
}
public:
int m_p;
int m_p2;
};
int _tmain()
{
A *a = new A;
a->m_p = 5;
a->m_p2 = 6;
int A::*b = &A::m_p;
Cout << a->*b << Endl;
b = &A::m_p2;
Cout << a->*b << Endl;
delete a;
}
freshui
2007-04-06
打赏
举报
回复
指针,一定要指向一个东西才能用,不然就会有段错误
比如你有个 int * p;
这是,如果有 int a=0;
你可以把 p= &a;
然后使用p, 没有问题,这时p指向的是a变量占用的内存
或者你自己给p指向一块内存,
p=(int *)malloc(sizeof(int));
这时p指向的是你分配给他的内存,这样也没有问题
如果你只是 int *p;
然后就 *p=1;
这时就麻烦了, p指向的不知道啥地方,这个地方或许是系统关键部分, 你给这地方乱写东西, 系统当然不会让你干的,所以出错.
最好定义指针这样定义 int *p=NULL; 哪都不指,会减少很多麻烦的
呵呵
hjdlp
2007-04-06
打赏
举报
回复
哦谢谢 还有请问*d取什么啊他是一个对象啊
taodm
2007-04-06
打赏
举报
回复
再急也请搬本C++书出来,你这那有指向成员的指针了,当然无法使用.*/->*
wangzhangyong411
2007-04-06
打赏
举报
回复
段错误是因为你的构造函数写错了 应该这么写
integer (int a)
{
p=&a;
}
hjdlp
2007-04-06
打赏
举报
回复
在一本书上看见有.* 说的是取成员指针操作符
->*是指针取成员操作符
但是测试不行。不明白ing ;
二类*d.p 段错误
loongee
2007-04-06
打赏
举报
回复
你定义的是一个指针p,不是*p,引用的时候必须把*去掉,声明的时候*的作用只是告诉编译器p是一个指针,不是一个整型变量。
wangzhangyong411
2007-04-06
打赏
举报
回复
类的实例用. 类的指针用->
wangzhangyong411
2007-04-06
打赏
举报
回复
d.*p; 把*号去掉就可以了,,,,*p不是变量名 你要用的话写*d.p
the boost
c++
library.pdf
- **赋值和下标
运算符
**:解释了如何使用赋值和下标
运算符
。 - **逻辑
运算符
**:讨论了逻辑
运算符
在 lambda 表达式中的使用。 - **逗号
运算符
**:解释了逗号
运算符
的作用。 - **函数调用
运算符
**:描述了如何在 ...
C++
2011标准(英文版)
- **2.13
运算符
和分隔符**:列举了语言中的
运算符
和分隔符。 - **2.14 文字量**:介绍了不同类型的文字量。 3. **第3章:类型** - **3.11 对齐**:说明了对齐的要求。 4. **第4章:标准转换** - **4.1 l值到r...
c++
2011标准(最新).pdf
- **语法表示法**:使用了一种特定的表示法来描述
C++
语法,便于理解和应用。 - **
C++
内存模型**:定义了线程间内存访问的一致性规则。 - **
C++
对象模型**:描述了
C++
中对象的创建、销毁和存储。 - **程序执行**:...
C++
14标准草案
- **一元表达式**:解释了一元操作符,如++、--、&等的使用方法。 - **显式类型转换**:说明了如何使用cast语法来显式改变表达式的类型。 - **成员指针
运算符
**:介绍了成员指针
运算符
*和->*的使用方式。 - **乘法...
C++
11最新使用手册
该文档为
C++
11 标准的早期草稿版本,旨在为
C++
开发者提供全面的更新指南,帮助理解并掌握
C++
11 的新特性和改进之处。 #### 三、文档主要内容 - **1. General 一般性介绍** - **1.1 Scope 范围**:定义了
C++
...
C++ 语言
65,208
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章