C++的结构块中成员函数的使用

C++允许在结构中定义函数,该函数称为成员函数。其描述形式如下:

struct 结构名{

数据成员

成员函数

}

下面是一个使用成员函数的例子

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

struct Point
{
	double m,n;
	void Setab(double a,double b)
	{
		m=a;
		n=b;
	}
	
	void display()
	{
		cout<<"display()------>>" <<m<<"\t"<<n<<endl;
	}
};

int main(int argc, char** argv) 
{
	Point p;
	p.Setab(2,3);
	p.display();
	cout <<"数据成员"<<p.m<<"\t" <<p.n <<endl;
	return 0;
}

总结:

1、用到了结构块 结构块中的函数调用的方法,写完上面程序发现C++的结构块像Java中静态方法,直接用结构名调用数据成员和成员函数;还有一个就是“\t” 是制表符意思是横向跳到下一个制表符的位置,相当于键盘上的Tab键,“\n”换行相当于endl;

2、在结构中成员默认都是public如不不希望对象直接访问数据成员,可以将数据成员使用private来修饰,即私有的数据成员,必须通过共有的成员函数才能使用,成为数据的封装性,下个小例子看看数据的封装性。


今天又运行了这个代码发现将结构体放到main后面后不能编译通过,查看日志找不到结构体 意思是没有声明结构体的,然后就看了一些书籍和文章有点人说在main函数之前添加struct Point; 但是这种写法是不行的根本没用然后就搜索结构体的声明然后看到声明的方式。下面将代码贴出来有需要的可以参考下。

#include "stdafx.h"
#include <iostream>

//命名空间 
using namespace std;

struct Point{
	double m,n;
	void setab(double a,double b);
	void disply();
	
};

int main() 
{
	Point p;
	p.setab(23,45);
	p.disply();
	getchar();
	return 0;
}


void Point::setab(double a,double b)
	{
		m=a;
		n=b;
	}

void Point::disply()
{
	cout<<m<<n<<endl;
}
上述方式虽然是可以了但是看到结构体前置声明很麻烦 代码很多所以综合起来还是用第一种方式比较好直接将结构体放到main函数的上面,代码都是自上而下执行的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值