C++ 实例化对象 p->printX()
一、从栈实例化对象
我们首先定义一个类,类的名字叫TV,里面包括两个成员变量,两个成员函数。
class TV // 定义一个电视的类TV
{
public:
char name[]; // 定义类的属性,一个数组
int type; void changeVol(); // 定义成员函数
void power();
}
下面开始从栈中实例化对象
如果定义一个对象,我们就在类TV后面写一个对象tv;
如果定义一个对象的数组,我们就在类TV后面写数组对象 tv[20] ,20是数组需要的元素。
int main(void)
{
TV tv; // 定义一个对象
TV tv[]; // 定义一个对象数组 return ;
}
示例:
#include <iostream>
#include <stdlib.h>
using namespace std; class Coordinate // 定义一个类Coordinate(坐标)
{
public: // 访问限定符
int x;// 定义一个成员变量 x (坐标x)
int y;// 定义一个成员函数 y (坐标y) void printX()//定义一个成员函数 printX(),函数的作用是输出 x 的值
{
cout << x << endl;
}
void printY()//定义一个成员函数 printY(),函数的作用是输出 y 的值
{
cout << y << endl;
}
}; int main(void)
{
// 用栈的方式实例化类
Coordinate coor; // coor是定义在栈中的一个实例化的对象
coor.x = ; // 访问数据成员,给成员变量 x 赋值
coor.y = ;
coor.printX();// 调用成员函数
coor.printY();
}
二、从堆中实例化对象
我们首先还是定义一个类,类的名字叫TV,里面包括两个成员变量,两个成员函数。
class TV // 定义一个电视的类TV
{
public:
char name[]; // 定义类的属性,一个数组
int type; void changeVol(); // 定义成员函数
void power();
}
下面开始从栈中实例化对象
在堆中实例化对象的时候,我们要首先申请一块内存,把这块内存给实例化的对象或者对象的组;
在使用完后,我们要将内存释放掉。
int main(void)
{
TV *p = new TV(); // 在堆中申请一个对象
TV *q = new TV[]; // 在堆中申请一个数组对象,20个变量 delete p; // 释放一个对象的内存
delete []q; // 释放一个数组的内存 return ;
}
示例:
#include <iostream>
#include <stdlib.h>
using namespace std; class Coordinate // 定义一个类Coordinate(坐标)
{
public: // 访问限定符
int x;// 定义一个成员变量 x (坐标x)
int y;// 定义一个成员函数 y (坐标y) void printX()//定义一个成员函数 printX(),函数的作用是输出 x 的值
{
cout << x << endl;
}
void printY()//定义一个成员函数 printY(),函数的作用是输出 y 的值
{
cout << y << endl;
}
}; int main(void)
{
// 用堆的方式实例化类
Coordinate *p = new Coordinate();
p->x = ; // 用指针的形式给x赋值
p->y = ;
p->printX(); // 用指针的形式调用函数
p->printY(); system("pause");
return ;
}
C++ 实例化对象 p->printX()的更多相关文章
- [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别
1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...
- java实例化对象的方式
一.Java中创建(实例化)对象的五种方式 1.用new语句直接创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); ...
- PHP动态实例化对象并向构造函数传递参数
在框架开发,模块化开发等场合,我们可能有一种需求,那就是在PHP运行时动态实例化对象. 什么是动态实例化对象呢?我们先来看一下PHP有一种变量函数(可变函数)的概念,例如如下代码: function ...
- 用TypeScript开发Vue——如何通过vue实例化对象访问实际ViewModel对象
用TypeScript开发Vue--如何通过vue实例化对象访问实际ViewModel对象 背景 我个人很喜欢TypeScript也很喜欢Vue,但在两者共同使用的时候遇到一个问题. Vue的实例化对 ...
- 【PHP面向对象(OOP)编程入门教程】5.如何实例化对象?
我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了. 当定义好类后,我们使用new关键字来生成一个对象. $对象名称 = new 类名称 ...
- PHP面向对象(OOP)编程入门教程————如何实例化对象?
我们上面说过面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对象了. 当定义好类后,我们使用new关键字来生成一个对象. $对象名称 = new 类名称 ...
- c++实例化对象
今天看到c++实例化对象,有点懵了.Activity_Log the_log (theLogPtr, Tree->GetBranch());这是那一段小代码,开始没看懂.java看习惯了总喜欢n ...
- 1、c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以
1.c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以
- javascript基础知识--什么是构造函数?什么是实例化对象?
前言--讲在前面 我想有很多以前很少接触后台编程语言的初学者朋友跟我一样,对javascript里面一系列的“名词”搞的一头雾水.好像大概知道讲的是什么,但其实理解的还是不清楚:我想,学习任何一种知识 ...
随机推荐
- POJ2533_Longest Ordered Subsequence (线性动态规划变形)
本题求一个字符串中的最长递增子序列的长度. 动态规划方程 a[]记录字符串: d[i]记录以第i个元素为最后一个元素的最长递增序列的长度 则 d[i+1]=1+max(d[j]) 其中(j<i ...
- 利用ES6中的Array.find/ Array.findIndex来判断数组中已存在某个对象
前端开发过程中,我们会经常遇到这样的情景:比如选中某个指标obj,将其加入到数组checkedArr中({id: 1234, name: 'zzz', ...}),但是在将其选中之前要校验该指标是否已 ...
- rails安装使用版本控制器的原因。
使用版本控制器的原因: 你没有系统根权限,所以你没有别的选择 你想要分开运行几个rails 系统 ,并且这几个rails有不同的Ruby版本.使用RVM就可以轻松做到. 没有什么新鲜的先安装xcode ...
- Android之第三方平台实现多平台分享操作
开发中常常遇到分享操作,当用到多种分享时,如:QQ,微信,微博,短信等,可以借助第三方平台来完成,此博客主要借助mob平台来完成相关操作,当然也可以借助其他平台,如友盟等. 先来看看效果图: 如图看出 ...
- 从零开始新建一个Maven 、springMVC工程
相关代码:http://pan.baidu.com/s/1jIBUr1G 目标: 新建一个名为testSpringMvc的spring MVC工程,maven管理jar包: 1.新建maven管理的w ...
- openv+contrib配置总结
本文转载于:https://www.cnblogs.com/wjy-lulu/p/6805557.html 开门见山的说:别用opencv3.0,这个版本添加扩展库不怎么好,能不能成功我不敢说,我是试 ...
- IOS-网络(NSURLSession)
一.NSURLSession的基本用法 // // ViewController.m // NSURLSession // // Created by ma c on 16/2/1. // Copyr ...
- 为什么不建议将 font-size 设置为 12px 以下?如果一定要设置为 12px 以下要怎么做?
问题:为什么不建议将 font-size 设置为 12px 以下?如果一定要设置为 12px 以下要怎么做? 先看看把 font-size 设置为 12px 以下时的效果:(浏览器为 Chrome 5 ...
- Android自定义view控件
转载自: http://blog.163.com/ppy2790@126/blog/static/103242241201382210910473/ 开发自定义控件的步骤: 1.了解View的工作原理 ...
- 各种liunx发行版本包管理器对比
关于Ubuntu安装软件问题:apt-get和dpkg区别? 两者的区别是dpkg绕过apt包管理数据库对软件包进行操作,所以你用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了, ...