* 指针简单总结
//接受命令行参数的函数
int main( int argc/*字符串的个数,>=1*/, char * argv[]/*指向字符串*/ )
{
//参数的个数:argc-1
//参数:argv[1~n]
cout << sizeof("goodbye");//输出8
}
引用:给旧变量起新名字,通过新名字操作旧变量.
引用和用来初始化它的变量是同一个实体.
引用不会复制数据,提高了效率.
传数组一般不用引用.直接传数组名
sizeof(类型)//只关心类型,不关心内容
//示例代码
int x=0;
cout << sizeof(1/x) << endl;//输出4
int (&p)[10] //数组引用,没必要这样写,建议不使用,注意数组名不是变量
//没必要为其起别名
(int * p, int n ) //这样写比较好
函数指针:像声明函数一样定义函数指针,把函数名改成(*指针),占4个字节,因为它是一个指针.
函数调用:fp( /* args */ )
void 指针把类型信息给丢了.
没有类型的指针不能用来表示变量,所以用void指针时一定要强转 *(A*)p
指针有两点:1,保存地址 2,类型一致
-----------------------------------------------------------
*** 面向对象编程
//时钟程序
//clock.h
#define _CLOCK_H_
struct Time{
int hour;
int minute;
int second;
};
void set( Time* p, int h, int m, int s );
void tick( Time* p );
void show( Time* p );
void run( Time* p );
#endif
//clock.cc
#include "clock.h"
#include <ctime>
#include <iostream>
using namespace std;
void set( Time* p, int h, int m, int s )
{
p->hour = h;
p->minute = m;
p->second = s;
}
void tick( Time* p )
{
long t = time(NULL);
while( t == time(NULL) );
if( ++p->second >=60 ){
p->second = 0;
if( ++p->minute >= 60 ){
p->minute = 0;
if( ++p->hour >=24 ){
p->hour = 0;
}
}
}
}
void show( Time* p )
{
cout << '\r';
if( p->hour < 10 ) cout << 0;
cout << p->hour << ':';
if( p->minute <10 ) cout << 0;
cout << p->minute << ':';
if( p->second <10 ) cout << 0;
cout << p->second << flush;
}
void run( Time* p )
{
for(;;){
tick( p );
show( p );
}
}
//main.cc
#include "clock.h"
using namespace std;
int main()
{
Time t;
set( &t,21,35,55 );
run( &t );
}
//时钟程序 改进型
//main.cc
#include "clk.h"
using namespace std;
int main()
{
Time t;
t.set( 21,35,55 );
t.run( );
}
//这个地方用了VI一条替换的命令,将上面的程序中的所有的p替换成this
//1,$s/p/this/g
//clk.h
#ifndef _CLOCK_H_
#define _CLOCK_H_
struct Time{
int hour;
int minute;
int second;
void set( int h, int m, int s );
void tick( );
void show( );
void run( );
};
#endif
//clk.cc
#include "clk.h"
#include <ctime>
#include <iostream>
using namespace std;
void Time::set( int h, int m, int s )
{
this->hour = h;//this可省略不写
this->minute = m;
this->second = s;
}
void Time::tick( )
{
long t = time(NULL);
while( t == time(NULL) );
if( ++this->second >=60 ){
this->second = 0;
if( ++this->minute >= 60 ){
this->minute = 0;
if( ++this->hour >=24 ){
this->hour = 0;
}
}
}
}
void Time::show( )
{
cout << '\r';
if( this->hour < 10 ) cout << 0;
cout << this->hour << ':';
if( this->minute <10 ) cout << 0;
cout << this->minute << ':';
if( this->second <10 ) cout << 0;
cout << this->second << flush;
}
void Time::run( )
{
for(;;){
tick( );
show( );
}
}
//clk.h改进成类
#ifndef _CLOCK_H_
#define _CLOCK_H_
class Time{
int hour;
int minute;
int second;
public:
void set( int h, int m, int s );
void tick( );
void show( );
void run( );
};
#endif
在成员函数中,把用来调用这成员函数的变量称为当前变量(this总是指向当前变量)
*this 就表示当前变量.
分享到:
相关推荐
在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版。这套教程通过一系列的PPT章节,详细讲解了C++面向对象编程的关键概念。 首先,第1章“面向...
本资料包“C++面向对象程序设计 经典例题 附练习题”显然是为了帮助学生深入理解C++的面向对象特性,并通过实例和练习来巩固学习成果。 在C++中,面向对象的主要概念包括: 1. **类**:类是创建对象的模板或蓝图,...
《C++面向对象编程实例大全》是一本专为初级学习者设计的教程,旨在通过丰富的实例深入浅出地讲解C++的面向对象编程概念。面向对象编程(Object-Oriented Programming,简称OOP)是C++的核心特性,也是现代软件开发...
以下是对"**C++面向对象程序设计PDF电子书与参考答案**"中的关键知识点的详细阐述: 1. **封装**:封装是面向对象编程的基础,它将数据(属性)和操作这些数据的方法(函数)捆绑在一起,形成一个独立的实体——...
"C++面向对象程序设计第三版谭浩强教学大纲.pdf" 本资源摘要信息涵盖了C++面向对象程序设计的基本概念、数据存储、程序设计初步、函数、数组、指针、用户自定义数据类型、类和对象的程序设计等方面的知识点。 第一...
《Visual C++ 面向对象编程教程——王育坚》是一本专为学习MFC(Microsoft Foundation Classes)和面向对象编程技术而设计的教学资料。该教程以幻灯片的形式呈现,结合实例与详细的讲解,使得学习过程更为直观且易于...
本资料“C++面向对象程序设计答案”针对清华大学出版社出版的相关教材,提供了课后习题的解答,旨在帮助学习者深入理解并熟练掌握C++的面向对象编程技术。 1. **类与对象** - 类是C++中的蓝图,定义了一组数据成员...
《C++面向对象程序设计答案》是陈维新和林小茶共同编著的一本教材,专注于讲解C++语言中的面向对象编程概念和技术。这本书的第三版提供了3-5章的编程题,旨在帮助读者通过实践来巩固所学的知识。在深入探讨这个主题...
这个实验代码`test2`提供了一个实践C++面向对象编程的平台,通过分析和运行这些代码,你可以更好地理解面向对象编程的各个方面,并提升自己的编程技巧。在学习过程中,一定要动手尝试修改和扩展代码,这样能更深刻地...
《C++面向对象编程实现的背单词系统》 在计算机科学领域,编程语言是实现各种应用的核心工具。C++作为一款强大的、通用的编程语言,因其高效性、灵活性和丰富的库支持,常被用于开发复杂系统。面向对象编程(Object...
本资料集是关于“C++面向对象程序设计”的课后习题答案,旨在帮助学生深入理解和实践C++的OOP概念。 在C++中,面向对象的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、多态(Polymorphism)和...
根据提供的文件标题、描述以及部分无法识别的内容,我们可以聚焦于《C++面向对象程序设计》这本书,特别是由谭浩强编著的第三版,并且关注的是该书第1-14章的课后习题答案。 ### C++面向对象程序设计概述 C++是一...
《C++面向对象程序设计》是C++编程领域的一本经典教材,由清华大学出版社出版,龚晓庆、付丽娜等多位专家共同编著。这本书深入浅出地讲解了C++语言的核心概念,特别是面向对象编程(OOP)的思想和技术。第二版在第一...
本项目是学习C++面向对象编程的实战案例,通过设计和实现通讯录管理系统,学生可以深入理解面向对象编程的概念和技巧,并提升解决问题的能力。同时,项目的完整流程,包括需求分析、设计、编码、测试,也能帮助学生...
首先,我们来看看一些关于C++面向对象的重点和难点: 1. 数据共享与保护: - **静态成员**:类的静态数据成员属于类本身,而不是类的实例。这意味着所有类对象共享同一份静态数据成员的拷贝,它们是类的属性,而...
C++面向对象程序设计课程设计报告.pdf 本课程设计报告主要介绍了C++面向对象程序设计的相关知识点,并对公司人员管理系统进行了设计和实现。本报告共分为五个部分:引言、课程设计报告、系统测试、心得体会和参考...
C++面向对象
《Visual C++面向对象与可视化程序设计》是黄维通教授编著的一本经典教材,主要介绍了使用Microsoft的Visual C++编程环境进行面向对象程序设计和可视化应用开发的基础知识。这本书深入浅出地讲解了C++语言的核心概念...
C++面向对象高效编程 第2版