[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;
}


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

C++笔试基础题目(一) 类

下面描述中,错误的是() 基类定义的public成员在公有继承的派生类中可见,也能在类外被访问 基类定义的public和protected成员在私有继承的派生类中可见,在类...
  • m0_37693059
  • m0_37693059
  • 2017年08月21日 23:43
  • 159

C++基础知识汇总

C++面试题——基础概念篇 唐璐 http://blog.csdn.net/worldwindjp/         面试C++程序员的时候一般都是3板斧,先是基础问答,然后一顿...
  • weiyuefei
  • weiyuefei
  • 2016年08月01日 20:59
  • 1107

C++ 类基础知识

一,抽象与类 生活中充满复杂性,处理复杂性的方法之一是简化与抽象。抽象就是将问题的本质提取出来,并根据特征来描述问题。C++中的类是一种将类转化为用户定义类型的C++工具,它将数据表示与操作数据的方法...
  • cloud323
  • cloud323
  • 2017年04月05日 09:36
  • 342

C++基础知识(五)类进阶:模板类

在某些场景下,继承和包含并不总是能满足重用代码的需要。比如,容器类。容器类设计用来存储其他对象或数据类型。 比如如下的Stack类: Stack.h #ifndef STACK_H_ ...
  • breeze048
  • breeze048
  • 2018年01月31日 11:34
  • 24

如何用C++写一个类

写一个类简单,写一个好类难。本文主要总结了一些C++类实现的注意点。
  • huiyihgy
  • huiyihgy
  • 2015年07月06日 10:28
  • 1601

C/C++中的内置基本类型

(1)内置基本类型包括:整数、浮点数、字符、布尔类型、void、枚举; (2)其中整数、字符、布尔类型都称为整型,整数又包括:short、int、long; (3)字符类型有两种:char和wch...
  • zdplife
  • zdplife
  • 2016年03月13日 10:56
  • 1332

C++基础试题,面试题,基础知识点

转自:http://blog.sina.com.cn/s/blog_a8b2435901013nw3.html 1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域...
  • qq_24378389
  • qq_24378389
  • 2017年09月12日 16:33
  • 502

cocos2dx3.0游戏编程2-动作游戏之自定义精灵类

上一节我们做了点准备工作, 本节我们将定义自己的sprite类,以便于后续的开发。Coco2dx提供的默认sprite类只提供了最基础的功能,我们要做动作游戏,仅仅只用cocos2dx的sprite类...
  • cqjianx
  • cqjianx
  • 2014年07月20日 21:04
  • 3361

C++编程基础题

题目: 1.字符串转为int 输入1234 输出1234 注意:输入的必须为字符串,输出必须为int型 2.偶数位转为大写 例如: 输入:lanzhihui is a boy! 输出:lAnZh...
  • byr940923
  • byr940923
  • 2015年04月02日 01:06
  • 188

c++ 通用类型

c++ 通用类型 类似any实现:#include #include using namespace std; class __base_type { public: virtual co...
  • qq530896890
  • qq530896890
  • 2016年04月14日 20:28
  • 1025
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[C++基础]类
举报原因:
原因补充:

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