[C++基础]类

原创 2016年08月29日 00:06:43
参考:C++Primer.Plus(第6版)

P340-370


1.Stock.h

#pragma once
#include <string> 
using namespace std;

class Stock
{
private:
	int m_a;
	float m_b;
	string m_c;

public:
	Stock();
	~Stock();
	//string作形参,会复制
	//string&作形参,是引用,不会复制
	Stock(int a, float b, const string& c);

	void SetA(int a);
	Stock& CompareA(Stock& s);
	string Debug();
};

2.Stock.cpp

#include "stdafx.h"
#include "Stock.h"
#include <sstream>

Stock::Stock()
{
	m_a = 0;
	m_b = 0;
	m_c = "nullstring";
}

Stock::~Stock()
{
}

Stock::Stock(int a, float b, const string& c)
{
	m_a = a;
	m_b = b;
	m_c = c;
}

void Stock::SetA(int a)
{
	m_a = a;
}

Stock& Stock::CompareA(Stock& s)
{
	//返回值最大的对象
	if (s.m_a > m_a) return s;
	else return *this;
}

string Stock::Debug()
{
	stringstream s;
	s << m_a << " " << m_b << " " << m_c << endl;
	return s.str();
}

3.

#include "stdafx.h"  
#include "Stock.h"
#include <iostream>  
#include <string>  
using namespace std;

//通常,将类定义放在头文件,将实现放在源代码文件中
//使用#ifndef来防止多次包含同一文件
//.h是类接口 .cpp是类实现,修改类实现并不影响接口

//类的默认访问权限为private,结构的默认访问权限为public
//在定义成员函数时,使用作用域解析运算符(::)来标识函数所属的类
//通常,将数据成员放在私有部分中,成员函数放在公有部分中

//可以在类声明中提供完整的函数定义,而不是函数原型,前提是函数很小
//如果为类定义了非默认构造函数,则必须还要为其定义默认构造函数(无参)


//1.类对象的创建
void A1()
{
	Stock stock = Stock();
	Stock stock2 = Stock(2, 3, "hi");
	Stock* pstock = new Stock(4, 5, "people");
	Stock stock3 = stock2;//源对象数据复制到目标对象数据

	cout << stock.Debug();//0 0 nullstring
	cout << stock2.Debug();//2 3 hi
	cout << pstock->Debug();//4 5 people
	stock2.SetA(100);//不影响stock3
	cout << stock3.Debug();//2 3 hi

	delete pstock;
}


//2.this指针
//this是对象的地址,*this是对象本身
void A2()
{
	Stock stock = Stock(100, 200, "stock");
	Stock stock2 = Stock(300, 400, "stock2");
	cout << stock.CompareA(stock2).Debug();//300 400 stock2
}

int main()
{
	A1();
	A2();

	getchar();
	return 0;
}


版权声明:欢迎转载,欢迎讨论,大家一起共同进步!呵呵哒~

unity中出现找不到.net部分命名空间的问题

在unity环境下需要使用串口,需要用到System.IO.Ports这个命名空间下的相关资源,代码用vs2015写的,vs2015没有报任何错,结果unity报了一个错误: The type or...

[Unity基础]游戏中的数学

一、坐标系 1.世界坐标系:使用左手坐标系,即z轴方向跟人眼向前看的方向一致(右手坐标系z轴方向跟人眼向前看的方向相反) 2.本地坐标系 3.屏幕坐标系:左下为原点,右上为屏幕宽高 4.界面坐标系:左...
  • lyh916
  • lyh916
  • 2015年04月17日 21:01
  • 1035

C++的基础知识——类

  • 2010年10月06日 16:28
  • 387KB
  • 下载

C++ Socket编程 基础四:类FTP 文件下载服务器 客户端

#include #include #include #include #include "package.h" #pragma comment (lib,"ws2_32.lib") usin...
  • luairan
  • luairan
  • 2014年08月07日 09:33
  • 2418

友元类(C++基础教学)

  • 2012年04月22日 13:57
  • 4.66MB
  • 下载

C++友元函数和友元类的使用基础

友元函数百度百科:       友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想...

用于C++的基础网络类

  • 2008年12月17日 10:19
  • 156KB
  • 下载

c++可重用的N个基础类

  • 2008年11月19日 18:43
  • 3.41MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[C++基础]类
举报原因:
原因补充:

(最多只允许输入30个字)