请问可以在函数中再定义函数吗?原来弄Delphi的。不知道C++是否可以。谢谢! [问题点数:100分,结帖人82wds]

Bbs1
本版专家分:0
结帖率 100%
Bbs7
本版专家分:15155
Blank
红花 2003年11月 C++ Builder大版内专家分月排行榜第一
Blank
黄花 2003年10月 C++ Builder大版内专家分月排行榜第二
Blank
蓝花 2003年12月 C++ Builder大版内专家分月排行榜第三
Bbs7
本版专家分:13014
Blank
蓝花 2004年4月 C++ Builder大版内专家分月排行榜第三
Bbs6
本版专家分:8638
Bbs6
本版专家分:7380
Blank
红花 2003年10月 C++ Builder大版内专家分月排行榜第一
Bbs5
本版专家分:3878
Bbs4
本版专家分:1098
Bbs1
本版专家分:29
Bbs7
本版专家分:21758
Blank
黄花 2002年9月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2002年9月 C++ Builder大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs5
本版专家分:2415
Bbs6
本版专家分:7380
Blank
红花 2003年10月 C++ Builder大版内专家分月排行榜第一
Bbs5
本版专家分:2415
Bbs1
本版专家分:0
其他相关推荐
问题:struct和class的区别,struct能否包含成员函数
/******************************************************************************************** 文件说明: struct和class的区别 时间地点: 陕西师范大学 问津楼 2017.5.18 作 者: 九 月 *******************
【Skynet】C头文件不要定义函数?
参考自:函数实现不放在头文件的原因,及何时可以放头文件的情况(绿色冰点) 对于C/C++我们很早就被告知不要在头文件里定义函数,这样不好。今天学习Skynet时,发现里面有很多函数都定义在头文件里?很是疑问,于是有了这篇文章。 把函数定义在头文件有哪些主要缺点? 1、不利于代码理解和维护: 通常,头文件被用来唯一指定接口,且多少提供一些文档来说明如何使用在该文件中声明的组件
关于函数中不确定参数的使用方法
1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void foo(...); void foo(parm_list,...); 这种方式和我们以前认识的不大一样,但我们要记住这是C中一种传参的形式,在后面我们就会用到它。 2.函数参数的传递原理   函数参数是以数据结构:栈的形式存取,从右至左入栈。   首先是
c++中函数只声明,不定义(不调用该函数)可以通过编译并运行
c++中函数只声明,不定义,代码中也没有该函数的调用,可以编译并运行(vs2015)。/* Author:gtkiller Date:2018/03/19 */ #include <iostream> #include <string> int Add(int a, int b) { return a + b; } int Sub(int a, int b); i...
C语言为什么要区分.h和.c?为何不能在头文件里写定义?
原贴:https://blog.csdn.net/trap94/article/details/50602090我们都知道,在写外部函数的时候,应该在源文件中写具体定义,而在对应的头文件中写申明,最后在执行文件中包含这个头文件就行了。但到底为什么不能在直接在头文件里写定义呢?一句话解释下:因为会产生重复定义的问题!但我们还知道,我们还有#ifndenf这个东西,如果要问起来这东西是干啥用的,估计大...
c语言结构体里的函数
今天第一次知道结构体里可以有函数,,,,,,,,,,,,,不知道吧,,,之前貌似有看过。。。。没错,c++里的类=====c里的结构体 那么类比下,,,鞥哼,,,结构体里的函数是不是不乖了呢。。。。。 sure,,,默认的权限----public
c++中为什么函数定义可以在主函数后面而类的定义不可以?
根据函数的申明就可以知道其返回类型,所以编译时可以为其分配内存,但是类就不一样,只是声明的话,在编译的时候无法为其分配内存,在定义对象是会报错,但是定义对象指针不会报错,原因就是指针的内存是一定得,所以不会报错,这也是为什么类的定义需要在主函数之前。
c++中的函数嵌套调用和嵌套定义问题
c++中允许函数的嵌套调用,但不允许函数的嵌套定义,例如: #include int SwpInt(int *a,int *b) {  int c;  c=*a;  *a=*b;  *b=c;  return a; } void main() {  int e=12;  int f=89;  SwpInt(&e,&f);  cout } 这样定义是对的,但是如
C语言一个文件中的函数能直接调用另外一个文件中的静态函数吗? (某公司校园招聘面试试题)
我当时是这么答
【C语言】11-函数的声明和定义
一、函数的声明 1.在C语言中,函数的定义顺序是有讲究的:默认情况下,只有后面定义的函数才可以调用前面定义过的函数 1 int sum(int a, int b) { 2 return a + b; 3 } 4 5 int main() 6 { 7 int c = sum(1, 4); 8 return 0; 9 } 第5行定义的main函数
函数可以定义在函数里面吗?
原文:http://bbs.chinaunix.net/thread-1775533-1-1.html 特别是写排序函数的时候,可以将排序函数nop掉 // common01.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #i
为何不能在头文件里写定义?
为何不能在头文件里写定义?
数学之美(第二版)
读者说,读了《数学之美》,才发现大学时学的数学知识,比如马尔科夫链、矩阵计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。而今,数学在信息产业中的应用越来越广泛,因此,作者在第二版中增加了一些内容,尤其是针对大数据和机器学习的内容,以便满足人们对当下技术的学习需求。
c++中定义一个全局变量,子函数修改变量后,主函数没有改变问题
在子函数声明时加& 如 (int *&head);
字符串的拷贝可以使用sprintf、strcpy 及 memcpy 函数,这些函数有什么区别
这些函数的区别在于 实现功能 以及 操作对象 不同。strcpy 函数操作的对象是 字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能。snprintf 函数操作的对象 不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s 格式符,也可实现字符串拷贝...
NOWCODER:C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(int)
一、返回值 C中:如果函数未指定返回值类型,则默认为int C++中:如果一个函数没有返回值,返回值类型必须指定为void 二、参数列表 C中:如果函数没有指定参数列表,则默认可以接受任意多个参数 C++中:有严格的类型检测,没有参数列表的函数默认为void,不接受任意参数 三、缺省参数(即给参数一个默认值) C:不支持 C++:支持(如果没有指定实参则使用缺省值...
c语言strcpy函数和memcpy函数,拷贝后,源数组的内容改变了
今天遇到一个奇葩的问题,虽然解决了,但是还没找到原因,先mark一下。 c语言strcpy函数和memcpy函数,拷贝后,源数组的内容改变了 在C语言中,定义两个数组: char a[16], b[16]; 给a赋值后,使用memcpy函数和strcpy函数将其内容拷贝给b,拷贝完成之后,打印a时,发现其内容变成了原来的2倍。 strcpy(b,a) memcpy(b, a
虚函数能否是内联函数
内联函数是在编译时,将调用函数处插入内联函数的代码,省去了函数调用时的开销。 虚函数是通过指针或引用调用函数时,通过虚函数表来确定调用的函数,在运行时确定。 那么虚函数是否可以是内联函数? 以前没有想过这个问题,表面上看,虚函数不能为内联函数。我们在类中定义的函数都是内联函数,析构函数经常在类中定义,而析构函数又经常声明为虚函数,以前没有发现什么问题。 其实虚函数可以为内联函数,这与内联函
C语言中函数原型的重要性
原文地址在此 函数原型告诉编译器函数的参数个数,参数类型以及函数的返回类型.通过使用这些信息,编译器反复校对(cross check)函数定义与函数调用的参数及其数据类型.如果我们忽略了函数原型,程序可能会带着警告编译通过,且可能会正常工作.但有些时候,它会产生一些奇怪的输出而且很难找到这些程序错误,我们看个例子 #include #include int main(int a
C语言字符串输入函数的比较与解析
在做ACM题时经常会被一些字符串输入搞得
C++中命名空间内只能声明函数,不能定义
C++命名空间是一个作用域的概念,而且是可以分割的作用域,不同于函数模块作用域{...},命名空间可以分在多个文件中定义,只要是属于统一名字空间的内容都拥有本命名空间的整体作用域,即本命名空间全体可见,不论是否在不同文件。 实验中试了一下,在命名空间内定义一个自己的函数,结果编译出错, namespace Ui { class MainWindow: public Ui_MainWind
C语言中static 函数除了不能再外部被调用外和普通函数还有什么区别呢?
C程序一直由下列部分组成:       1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;      2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。      3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。       4)栈——增长方向:自顶向下增长;自动变量以
编译动态库可用未声明的函数
现象:成功编译某个动态库,可是当用该动态库编译可执行
c++和c语言中的函数相互调用的问题
1、如何C++程序要调用 已编译后的C函数,该怎么办?
#define定义函数
c语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。   带参宏定义的一般形式为:  #define 宏名(形参表) 字符串   在字符串中含有各个形参。 带参宏调用的一般形式为:  宏名(形参表)   例如:   #defineM(y)((y)*(y)+3*(y))/*宏定义*/   k=M(5
static在头文件中定义带来的危害
static的三种使用方式 (1)局部静态变量  (2)外部静态变量/函数  (3)静态数据成员/成员函数  引用static变量要小心! 因为static的局部性,全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。 1. 如果在头文件中定义static变量,被多个文件引用,编译可以顺利通过!即该头文件被包含了多少次,这些变量就定义了多少次。
c语言中函数的嵌套调用(关于函数声明的一个例子)
###########################例子全部来源于谭浩强版c语言################################ include <stdio.h> int main() { int max4(int a,int b,int c,int d); int a,b,c,d,max; printf("please input the four ...
private成员函数竟然可以在类的外部调用
今天写代码竟然发现,private成员函数竟然可以在类的外部调用,开始以为是C++设计的缺陷。但是逐步深入才知道C++多态的博大精深。#include using namespace std; class Base { public: virtual void Func() { cout<<"base"<<endl; } }; class Derived : public Bas
C语言if判断语句中可以更改变量的值
#include <stdio.h>int main(void) { int i=0; if ((i=1)<0) { printf("test"); } else if(i==1) { printf("i的值在上个if语句中被改变"); } else printf("i的值在上个if语句中
extern "C" __stdcall对函数的使用声明
extern "C" __stdcall对函数的使用声明如下: 1 extern "C": 在当调用别人写的库时,注意库是使用何种编译器,若是C的,则你在用VC中的C++编译器调用时就得加 #if defined(__cplusplus) extern "C" { #endif ..........声明被调用的函数名
C语言中函数的参数列表为空和void的区别
C语言中函数的参数列表为空和void的区别 C标准和C++标准在main函数上是有区别的,所以我分别详细来介绍他们。 对于C语言:   C89标准的main()函数是可接受的,尽管现在建议是使用C99的标准。C99标准只定义了如下两种可接受的函数原型: int main(void) int main(int argc, char *argv[])   以上函数原型微小的变形也是可以被接
java语言中不允许嵌套定义
在java语言中不允许嵌套定义,这点和c不一样。如:public class test { public static void main(String[] args) { int x = 9; { int x = 3; System.out.println(x); } Syste
头文件只能放变量的声明但是不能放定义
一般的做法都是在头文件(.h)中声明变量,然后在源文件(.c)中定义变量 如果在头文件中定义变量,这个变量就有了实体,如果a.c和b.c一起引用了头文件head.h,就等于同时创建了两个同样名字的变量实体,在一个工程下,链接的时候就会导致重定义的问题 如何在头文件中声明变量而不是定义呢 ?使用extern关键字,extern关键字表示当前变量在别处定义,需要链接到外面的文件才能找到具体的变量,
C语言变量在函数开头定义还是在用到时定义
在C89中,函数块中的变量必须放在所有语句前面声明。     在C99,函数块中的变量不必放在所有语句前面声明。       微软一直沿用C89,所以在VC++6.0,VS2008中,变量必须放在函数开头,以下代码就编译不过,但gcc可以。 void *mymemcpy(void* dst, const void* src, int size) { /*检查参数的是否合理*/ if
通过函数指针调用static
 所谓函数指针就是一个指向函数的指针,也就是说我们定义一个函数指针量后,这个变量所在的空间要保存一个函数的地址。那么函数指针除了作为回调函数的传参之外还有什么作用呢?这里我们就结合staitc的作用来探讨一下函数指针是如何作为间谍的。 首先讨论一下static的作用,static从本质来讲就两个作用: 第一、 限定存储域:被static修饰的变量无论是局部变量还是全局变量都将被编译器存放
shell脚本中函数的定义和使用
shell脚本中函数的定义和使用Bash(Bourne Again shell)跟其他编程语言一样也支持函数,一般在编写大型脚本中需要用到,它可以将Shell脚本程序划分成一个个功能相对独立的代码块,使代码的模块化更好,结构更加清晰,并可以有效地减少程序的代码量。但是bash作为一种解释性语言,bash 在编程能力方面提供的支持并不像其他编译性的语言(例如 C 语言)那样完善,执行效率也会低很多。...
结构体中的定义指针和定义函数
在结构体中是可以定义函数的,在C语言中只能定义函数指针,如下面的结构体中的void (*printInfo)(struct person *per); struct person { char *name; int age; char *work; void (*printInfo)(struct person *per); }; void printInfo(str
inline函数的定义放在头文件中
inline是加在实现上,就算加在声明上,编译器也会忽略掉。内联展开是在编译时进行的,只有链接的时候源文件之间才有关系。所以内联要想跨源文件必须把实现写在头文件里。如果一个inline函数会在多个源文件中被用到,那么必须把它定义在头文件中。 注意:将函数的定义({…}之间的部分)放在头文件中是强制的,除非该函数仅仅被单个 .cpp 文件使用。尤其是,如果你将内联函数的定义放在 .cpp 文件
C语言_在自定义函数里使用结构体_Cplus14.6
#include #define FUNDLEN 50 struct fund { char bank[FUNDLEN]; double bankfund; char save[FUNDLEN]; double savefund; }; double sum(struct fund*); main() { struct fund stan= {"qqq",123,"eee
C++中类定义可以写在.h文件,但函数定义却不行
前两个转自:http://bbs.csdn.net/topics/390542206?page=1#post-395264705 一、定义和声明 1) 定义就是声明,声明不一定就是定义,声明的意思是已经定义了。    定义是直接说已经定义了,非定义声明,是间接说已经定义了。    声明,不需要明白告诉你,定义成什么样子,你懂得就行。    定义,必须清晰,不能含糊,因为要分配空间。
C语言中函数的思考(可以返回局部变量吗)
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意
虚函数必须定义(纯虚函数除外)
1. 虚函数的声明和定义 具体关于虚函数的知识不做多讲,我在定义一个抽象类时,忘了将一个虚函数声明为 纯虚函数,又没有对其定义, 导致编译报错时报错如下: undefined reference to `vtable for Fibonacci' 错误提示的很明显,就是无法生成虚函数表。 我们知道,虚函数表(地址)在定义了虚函数的类所实例化的对象内存中的第一个位置,也就是在实例化过
java中成员函数内部为何不可以定义静态变量?
我认为以下这两种解释都是类似的,正确的: 解答一:static 只能修饰 成员变量 或者成员方法。不能修饰局部变量。在Java 中,用static 修饰的成员 被是为 共享的。定义在方法中,被视为 局部的。显然是不能共享的。                来自 https://zhidao.baidu.com/question/281363843.html 解答二 :静态变量时属于整
C_语法_宏定义define和函数的作用…
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义: #define MAX( a, b) ( (a) >
c语言中函数重名
<br />c语言不支持函数重载。<br />同一作用区域不可以有函数重名,但不同作用区域中允许函数重名。不同作用区域可以通过在不同文件中使用static实现。
delphi中的多值返回
<br />1.       Return a record <br />Type<br />TmyData = Record 先定义一个Record有三个返回值<br />Data1: string;<br />Data2: string;<br />Data3: string;<br />end;<br />private<br />{ Private declarations }<br />function Myfunction(parm: string): TMydata; //定义一个functi
static变量、static函数与普通变量、普通函数的区别
转自:http://blog.163.com/sunshine_linting/blog/static/44893323201191294825184/全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文
为什么函数声明和定义中的一维数组形参无须写明元素数目
因为函数并不为数组参数分配内存空间。形参只是一个指针,它指向的是已经在其他地方分配好内存的空间,这个事实解释了为什么数组形参可以与任何长度的数组匹配——它实际传递的只是指向数组第一个元素的指针。
MySQL之自定义函数(可以不用DELIMITER)
http://www.cnblogs.com/zhangminghui/p/4113160.html 引言   MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利,比如我前面提到过的聚合函数SUM()、AVG()以及日期时间函数等等,可是我们总会出现其他的需求:我们需要调用一个函数,这个函数需要按照我们的要求来实现我们自己的功能,可是这个函数式系统不能提
类中的常成员函数的使用和定义
如果只对对象进行读操作,则该成员函数可以设计成常成员函数。设计成常成员函数的好处是:让使用者一目了然地知道该成员函数不会改变对象的值。 常成员函数的声明和定义在形式上必须一致,即在函数形参列表的右括号后面加上const。 //---------main.cpp------------ #include using namespace std; class Date { public:
使用json来定义函数,在里面可以定义多个函数
//普通方法 function add(a,b){ return a+b; } add(3,4); //使用json来定义函数,在里面可以定义多个函数 var method={ add:function(a,b){ return a+b; }, add2:function(a,b
c语言有参函数不带参数调用的情况
这几天在看MTK电池这一块的算法,阅读代码的时候看到一个问题,搞得不是很明白
Python的列表等变量的声明必须要在函数定义与函数调用之前
源代码—–这个代码作用是调用Linux应用终端操作来实现计算,并把计算结果取出来,组成相似矩阵,有五组值也就是有五组相似矩阵,这个是我做蛋白质结构预测用到的,自己写的,分享出来给大家,如有疑惑,欢迎评论区交流。# 此代码主要为说明问题,后面我会贴上完整代码以及数据。 def cal_simi(n): file = os.popen('cd '+path[n-1]+';ls').readlin
main函数外也可以调用函数
在写程序的时候,我们都知道一般一个程序肯定有一个主函数,它是真个程序的入口地址,也就是程序在这里开始执行,就像要进入一个大房子的大门,我们必须要打开这个门,才能进入整个房子里面去!并且可能我们都觉得一般的函数调用都是在主函数里面,main函数外满一般不能执行和调用函数,那么这句话对吗?函数体外面可以调用函数吗?答案是肯定的,看下面一个实例: #include using namespace s
C/C++ 为什么在函数内部修改形参并不能真正地改变传入形参的值?
void GetMemory( char*p ) {  p = (char*) malloc( 100 ); } void Test( void ) {  char*str = NULL;  GetMemory( str );  strcpy( str, "hello world" );  printf( str ); } 试题4传入中GetMemory(char *
C语言return函数
 return函数说到return,有必要提及主函数的定义。很多人甚至市面上的一些书籍,都使用了void main( )这一形式 ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着: The definition void main( ) { /* ... */ } i
JS 嵌套函数
转载请注明出处:https://blog.csdn.net/nk1212582/article/details/81178297 定义 JS可以在函数体中定义新的函数,这个新的函数称之为嵌套函数 代码实例 function isSumLess(arrA, arrB){ function sum(arr){ var s=0; for(var i=0; i&amp;lt;arr.lengt...
关于extern和inline的用法
extern 用白话文来讲,就是此处我需要用到函数或者变量,我在其他地方已经声明了,在哪声明的?你只管用就行,不需要知道在哪声明的。 举个
val( )函数的用法
val()函数语法为: i. val(字符表达式) val()函数的功能为:将一组字符型数据的数字部分转换成相应的数值型数据 val()函数用法: 1. 例  x = "12 5fdsa DA456"; 那么 val(x)应该返回125 后面的456不能返回来。 val()函数当识别到非数字,停止读入字符串。即如果字符串内有字母或其他非数字字符,val()函数只转换第一个 非
C语言中使用extern修饰函数要注意(转)
用extern修饰函数是表示被修饰的函数定义在当前文件外,而该函数用extern声明类型后就可以被当前文件调用了。使用extern修饰某函数时,对该函数的调用是在连接阶段才被处理的。下面我们看一段代码。 /***********************************************  * fun.c  ******************************
关闭
关闭