Ⅰ C++中如何用类来直接调用类中的成员函数
直接用的MFC的CDC,假设对话框类的文件为a.h,a.cpp,绘图函数(drawmap( CDC *pDC ); )的文件为b.h,b.cpp,则在a.cpp中包含b.h,在a.cpp中的合适的函数中调用drawmap函数就可以了。
例如:
class A
{
static void ABC()
{
}
}
这样可以在主函数里直接用
A::ABC();
这样的语句进行调用。
(1)如何访问类中已经声明的函数扩展阅读:
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
Ⅱ 在类内部怎么调用类外声明的函数
函数声明或定义在类定义之前,就可以在类内调用
Ⅲ Python如何调用自定义类中的函数
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
如下实例调用了printme()函数:
复制代码 代码如下:#!/usr/bin/python
# Function definition is here
def printme( str ):
"打印任何传入的字符串"
print str;
return;
# Now you can call printme function
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");
#以上实例输出结果:
#我要调用用户自定义函数!
#再次调用同一函数
Ⅳ 如何在一个类中访问另一个类的成员函数
假设你想在类A里调用类B的函数int f(x),两种办法:
1、class A::B 也就是说将B定义为A的父类, 这样你就可以自然的在A里面用f(x)了
2、class A
{
B B_ins;
int g(x);
}
int g(x)
{
return B_ins.f(x)
}
也就是说你可以在A里面使用一个B的对象作为成员变量,这样就可以用他的函数了
Ⅳ 一个类调用另一个类里边定义的函数,该怎样调用啊
#include<iostream>
#include <string>
using namespace std;
class CD
{
public:
CD(string name, string *songs1){
songer=name;
songs=songs1;
}
// 获得歌手的名称
string getSonger() {
return songer;
}
// 获得某首歌的歌名
string getSong(int index) {
return songs[index-1];
}
// 列出CD的内容、
void listSongs() {
cout<<"songer:"<<songer<<endl;
for(int i=0;i<6;i++)
cout<<"第"<<i+1<<"首歌: "<<songs[i]<<endl;
}
private:
string songer; // 歌手的名字。
string *songs; // 每张专辑6首歌的名字。
};
class CDPlayer
{
public:
CDPlayer(){}
// 提供给用户一个按钮菜单.
// 通过这个菜单,用户可以选择
// 1. 插入CD // 2. 播放CD // 3. 弹出CD // 0. 关机
void showButtons() {
cout<<"*********************************"<<endl;
cout<<"* 1. 播放CD *"<<endl;
cout<<"* 2. 插入CD *"<<endl;
cout<<"* 3. 弹出CD *"<<endl;
cout<<"* 0. 关机 *"<<endl;
}
// 插入CD. void insertCD(CD* cd),形参是指向CD对象的指针.
// 如果CDPlayer中已经有CD,提示先取出CD;
// 如果CDPlayer中没有CD,显示插入了哪位歌星的CD.
void insertCD(CD* cd){
if(cd==NULL){
cout<<" 插入了周杰伦的CD...... "<<endl;
cdIn=true;
}
else{
cout<<"已经有CD,请先取出......"<<endl;
cdIn=false;
}
}
// 弹出CD. CD* ejectCD(),返回值是指向该CD对象的指针.
// 如果CDPlayer中已经有CD,显示弹出了哪位歌星的CD,返回该CD的指针;
// 如果CDPlayer中没有CD,提示CDPlayer中没有CD,返回NULL.
CD* ejectCD(){
if(cd!=NULL)
{
cout<<" 弹出了周杰伦的CD...... "<<endl;
return cd;
}
else
{
cout<<"已经没有CD......"<<endl;
return NULL;
}
}
// 播放CD. void Play()
// 如果CDPlayer中已经有CD,显示正在播放哪位歌星的CD,并打印CD中歌曲的清单;
// 如果CDPlayer中没有CD,显示CDPlayer中没有CD,
// 并提示用户插入CD.
void play(CD* cd) {
if(!cdIn)
cout<<" Please insert CD first "<<endl;
else{
cout<<" 正在播放周杰伦的CD...... "<<endl;
cd->listSongs(); // cd.listSongs();
}
}
private:
CD* cd; // 插入CDPlayer中的CD,它是指向CD对象的指针。没有CD时为null
bool cdIn; // CDPlayer中是否已经插入CD
};
//主函数
void main()
{
int i;
string name;
string songs[6];
cout << "制造CD......\n";
// 输入歌手名字
cout << " Songer's Name: ";
cin >> name; // 输入:周杰伦
// 输入该歌手的六首歌名(青花瓷、菊花台、三节棍等)
for (i = 0; i < 6; i++)
{
cout << " song" << (i+1) << "#: ";
cin >> songs[i];
}
// 制造CD
CD cd(name, songs);
// 显示CD的内容
cd.listSongs();
// 制造CDplayer
CDPlayer player;
// 生成播放机的按钮
player.showButtons();
// 播放
player.play(&cd); // 打印:Please insert CD first
// 插入CD
player.insertCD(&cd); // 打印:插入了周杰伦的CD......
// 播放
player.play(&cd); // 打印:正在播放周杰伦的CD......
player.ejectCD(); // 打印:弹出了周杰伦的CD......
// 另造一张CD,歌手和歌的录入省略。
CD cd2(name, songs);
player.insertCD(&cd2);
player.play(&cd);
}
Ⅵ 如何在主函数中调用结构体中声明的函数
带函数的结构体,实际上就是 class. 只不过它的函数 都属 public.
你可以在主函数内建一个 它的 对象。用 对象的成员成员函数调用。
c++ 程序例子:
#include<iostream>
using namespace std;
struct ss{
int a;
void ff();
};
void ss::ff(){cout << a <<endl;};
int main()
{
struct ss obj;
obj.a=1234;
obj.ff();
return 0;
}
输出: 1234
Ⅶ 在C++中怎么调用类中的私有成员函数
C++中调用类的私有成员函数的方法就是,在该类中再声明定义一个公有成员函数
在其函数内部调用自己的私有成员函数,向外使用的话,在别的类中包含该类的头文件,就可以通过公有函数隐式的访问私有成员函数;
给个简单例子
class A
{
private:
void fuck();
public:
void howfuck()
{
fuck();
}
};
#include "A.h"
class Fuck
{
public:
A xiha;
}
xiha.howfuck(); //这样就可以访问A类的私有成员fuck函数了
Ⅷ C++中,如何在main函数中访问类中被声明成public的数据成员。程序运行到27-28行出错,不知道原因在哪里
需要设计一个public成员函数来访问数据成员,可以在第12行以后写如下函数:
void get_x(){return x;}
然后把你那上面出错的27行改为
int n=dt1.get_x();
就好了
Ⅸ java中主函数怎么调用类定义中的函数
main是静态函数,不可直接调用非静态函数table。要在main中定义一个类的对象才可以调用table方法。
在main中用this.table();应该可以
Ⅹ c++中类内的函数怎么调用
你必须先创建一个bookmanger副本,然后用
bookmanger bm;
bm.add()
或者,
bookmanger *bm = new bookmanger();
bookmanger->add()调用。
如果你一定要用类名来调用,可以定义函数为static:static void bookmanger::add()。
函数中的manager拼错了,应该是bookmanager。
c++构造函数:C++用以初始化对象的数据成员的一种函数。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
(10)如何访问类中已经声明的函数扩展阅读:
构造函数作用:
初始化对象的数据成员,规则:构造函数与类同名且无返回值,在对象实例化时自动调用、构造函数可以有多个重载形式、实例化对象时仅用到一个构造函数、当用户没有定义构造函数时,编译器自动生产一个构造函数。
编译系统为对象的每个数据成员(m_strName)分配内存空间,并调用构造函数School()自动地初始化对象的m_strName值设置为"bullworth"。
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。