精华内容
下载资源
问答
  • 1、Some projects cannot be imported because they already exist in the workspace 2、Some projects were hidden because they ...有时候eclipse或者myeclipse导入项目的时候会发生上面两个错误,IDE不允许我们...



    1、Some projects cannot be imported because they already exist in the workspace

    2、Some projects were hidden because they exist in the workspace directory

    有时候eclipse或者myeclipse导入项目的时候会发生上面两个错误,IDE不允许我们导入。具体原因是在IDE的workspace中已经存在了相同名字的项目,所以不能导入。

    解决办法则是修改项目名:

    1、right click --- refactor --- rename


    2、workspace中要修改名字的项目 --- 打开.project文件 --- 修改<name>projectName</name>

    展开全文
  • c语言函数重名问题

    千次阅读 2019-06-13 11:05:40
    苦找无果,最后发现原因——库内两个c函数重名。 结论:最好不要重名,但可以通过一些限制避免这个问题。 提问:c语言 可以函数重载吗? answer:可以实现。我参考了几种说法。 1,c语言支持函数重载。同一...

    问题:linux下程序链接动态c库总是失败,提示库中的几个函数出现问题。苦找无果,最后发现原因——库内两个c函数重名。

    结论:最好不要重名,但可以通过一些限制避免这个问题。


    提问:c语言 可以函数重载吗?

    answer:可以实现。我参考了几种说法。

    1,c语言不支持函数重载。同一作用区域不可以有函数重名,但不同作用区域中允许函数重名。不同作用区域可以通过在不同文件中使用static实现。

    2,实现 C 的函数重载呢,比较通用的做法是利用 C 的可变参数va_args。

    对比:体现了c++的封装的特点,c++可以实现函数重载,应用程序的调用方式是需要指明函数的namespace。其实编译的时候对重载的函数名做了修改,根据修改的函数名和参数形式进行调用。


    参考1

    参考2——c语言中函数重名

    参考3——如何实现 C 的函数重载

    展开全文
  • PHP命名空间

    2018-12-19 19:00:54
    1. 概念 PHP命名空间类似于操作系统中的目录,如在D盘不能存在两个同名的文件,但是可以先创建两个不同名称的文件夹,然后将两个同名的...PHP中也不允许出现两个重名的类、函数或者常量,否则会产生一个致命错误。...

    1. 概念

    PHP命名空间类似于操作系统中的目录,如在D盘不能存在两个同名的文件,但是可以先创建两个不同名称的文件夹,然后将两个同名的文件,分别放到两个不同的文件夹中,就没有问题了。这里的目录就相当于命名空间。

    一旦将文件放入文件夹中,在访问此文件时,就必须加路径中加入此文件夹的名称,如 D:\1219\psb.jpg

    PHP中也不允许出现两个重名的类、函数或者常量,否则会产生一个致命错误。

    <?php
    class Student{
        public $name;
        public function __construct($name)
        {
            $this->name=$name;
        }
    }
    class Student{
        public $age;
        public function __construct($age)
        {
            $this->age=$age;
        }
    }
    $s=new Student("参数");
    

    运行代码

    Fatal error: Cannot declare class Student, because the name is already in use in D:\phpStudy\WWW\test\test.php on line 9

    为了避免重名,除了可以在名称前面加上前缀之外,更加推荐的方法就是使用命名空间,将相同名称的类、函数或者常量放到不同的命名空间中。

    2. 创建命名空间语法

    创建命名空间使用 namespace 关键字,上面的问题通过如下改造就不会报错了

    namespace blog1;
    class Student{
        public $name;
        public function __construct($name)
        {
            $this->name=$name;
        }
    }
    namespace blog2;
    class Student{
        public $age;
        public function __construct($age)
        {
            $this->age=$age;
        }
    }
    $s=new Student("参数");
    echo $s->age;

    上面代码创建了两个命名空间,名称分别为blog1和blog2。

    注意每个命名空间的范围:命名空间的范围是从定义语句开始一直到下一个命名空间定义语句结束。

    所以下面的代码仍然处于命名空间blog2中,所以这里的Student使用的是blog2下的Student

    $s=new Student("参数");

    如果想使用blog1中的Student类,就要使用下面的语法, \命名空间 名称\元素名称

    $s=new \blog1\Student("参数");
    echo $s->name;
    

    思考:为什么这么写?

    因为当前还在blog2空间下,要使用其他空间的类,就只能这么写

    命名空间中,除了类,还可以拥有常量和函数,使用方法与类是一样的,这里不再赘述

    3. 全局空间

    全局空间也成为公共空间,即不属于我们定义的任何一个空间,公共空间的类、方法和常量,在任何一个命名空间中都可以使用。

    上面用于访问另一个空间的符号“\”,也可用于访问全局空间元素

    如下面代码在自己的命名空间中定义了一个与系统函数重名的函数,如果想使用系统的函数,就必须使用“\”

    namespace blog3;
    //如果不将此函数定义到blog3命名空间中,会报错的,因为与系统函数名称冲突
    function var_dump($data){
        echo $data;
    }
    //这里调用的是blog3命名空间中的var_dump函数
    var_dump("hello");
    echo "<br>";
    //这里调用的是系统的函数
    \var_dump("hello");

    除了系统函数属于全局空间,我们自定义的函数,如果不属于任何空间,也属于公共空间

    新建 common.php,编写如下代码

    function say($data){
        echo "hello".$data;
    }

    然后在其他文件中引入此文件,并调用 say 函数

    require_once 'common.php';
    \say("小明");

    说明:也可以不使用“\”,但是为了规范,建议还是加上

    4. 子空间

    在文件系统中,一个目录下面还可以有目录,命名空间也是如此,命名空间下面还可以空间,叫做子空间

    子空间是在实际的项目需求中需要的,这点MVC时就会看到

    namespace blog4;
    namespace blog4\controller;
    function f1(){
        echo "blog4\controller";
    }
    namespace blog4\model;
    function f1(){
        echo "blog4\model";
    }
    namespace blog\view;
    function f1(){
        echo "blog4\\view";
    }
    //调用命名空间 blog4\view
    f1();
    //调用命名空间 blog4\controller
    \blog4\controller\f1();
    //调用命名空间 blog4\model
    \blog4\model\f1();

    5. 使用命名空间

    这里要说明的如何使用其他命名空间中的类、函数和常量,换句话说就是如何使用路径

    5.1 非限定名称

    就是在使用类等元素时不使用前缀,而是直接使用元素名称,如类名、函数名称、常量名称

    namespace blog1;
    class beauty{
        public function __construct()
        {
            echo "beauty";
        }
    }
    
    /**
     * 在当前命名空间下使用本空间的类,可以直接使用类的名称
     * 前面不需要加入命名空间前缀
     */
    $b=new beauty();

    5.2 限定名称

    包含前缀的名称,类似于相对路径,是相对于当前的命名空间定位的,主要适合于使用当前命名空间的子空间中的类等元素。

    新建一个文件,命名为namespace.php

    namespace blog1\controller;
    class beauty{
        public function __construct()
        {
            echo "controller/beauty";
        }
    }

    然后在父空间所在目录编写如下代码

    namespace blog1;
    class beauty{
        public function __construct()
        {
            echo "beauty";
        }
    }
    require_once './namespace.php';
    
    /**
     * 在当前命名空间下使用子空间中的类,需要在类名前面加上子空间名称前缀
     * 最终的路径如下 blog1\controller\beauty
     */
    $b=new controller\beauty();

    5.3 完全限定名称

    包含了全局前缀操作符,相当于绝对路径

    比如上面的代码,使用子空间中的类时,还可以写成这样

    $b=new \blog1\controller\beauty();

    注意,完全限定名称与限定名称之间的区别在于前面是否加上“\”操作符

    使用完全限定名称最主要的作用还是使用其他命名空间中的元素。

    在namespace.php 中加入如下代码

    namespace blog2;
    class Beauty{
        public function __construct()
        {
            echo "blog2\beauty";
        }
    }

    在当前文件中编写如下代码

    class beauty{
        public function __construct()
        {
            echo "beauty";
        }
    }
    require_once 'namespace.php';
    $s=new \blog2\Beauty();

    5.4 导入命名空间

    如果我们使用的类不再当前的命名空间下,则在使用类的名称时要加入前缀,如上面的最后一行代码。

    导入命名空间可以看作是调用其他命名空间元素的一种快捷方式,可以省略前缀

    如修改上面的部分代码

    require_once 'namespace.php';
    /**
     * 导入命名空间blog2,
     * 使用User类时可以省却前面的“\”
     */
    use blog2;
    $s=new blog2\User();

    也可以直接导入其他空间中的类,这样使用类时可以直接编写类名,而不在使用前缀

    require_once 'namespace.php';
    /**
     * 导入命名空间blog2中的Userl类,
     * 使用User类时可以省却前面的所有前缀
     */
    use blog2\User;
    $s=new User();

    如果导入的类名在当前命名空间中存在,则会报错

    解决方法就是为其设置别名

    require_once 'namespace.php';
    /**
     * 如果导入的命名空间中的类与当前命名空间中的类重名,
     * 则可以为其设置别名
     */
    use blog2\beauty as B;
    $s=new B();

    说明:PHP并不支持导入函数或常量

     

    展开全文
  • 了解两个函数__autoload()和spl_autoload_register() 这两个函数的作用都是'自动加载',那么什么是自动加载呢?就是就是我们在 new一个class的时候,不...__autoload():因为php是不允许函数重名的所以说这个方法只
    了解两个函数__autoload()和spl_autoload_register()
    这两个函数的作用都是'自动加载',那么什么是自动加载呢?就是就是我们在
    new一个class的时候,不需要手动去写require来导入这个class.php文件,
    程序自动帮我们加载导入进来,这就是自动加载,那么这两个函数有什么区别呢
    __autoload():因为php是不允许函数重名的所以说这个方法只能定义一次,
    这就显得这个函数有点鸡助了,因此就有另一个函数的产生spl_autoload_register($className)
    这个函数就可以弥补__autoload()的不足之处了,怎么说呢这个函数的确很强大
    当我们去new一个找不到的class时,PHP就会去自动调用sql_autoload_resister注册的函数,
    这个函数通过它的参数($className)传进去比如说:
    sql_autoload_resister('load_function'); //函数名
    sql_autoload_resister(array('load_object', 'load_function')); //类和静态方法
    sql_autoload_resister('load_object::load_function'); //类和方法的静态调用


    //php 5.3之后,也可以像这样支持匿名函数了。
    spl_autoload_register(function($className){
        if (is_file('./lib/' . $className . '.php')) {
            require './lib/' . $className . '.php';
        }
    });


    它会把参数自动填入到我们要找的路径中这样让我们轻松了很多,当然这个函数的参数
    可以有多种形式的的!
    我们还可以用类的加载方式但是要注意了必须是'static'的方法


    class autoloading{
        //必须是静态方法,不然报错
        public static function load($className)
        {   
            require $className . '.php';
        }
    }
    //2种方法都可以
    spl_autoload_register(array('autoloading','load')); 
    spl_autoload_register('autoloading::load');
    $db = new DB(); //会自动找到


    当然我们也要注意一下了:如果你同时使用spl_autoload_register和__autoload,__autoload会失效
    说了这么半天了那么主题也该说到了__autoload只能定义一次那么让我们看看spl_autoload_register
    是怎样定义多次的
    function load1($className)
    {
        echo 1;
        if (is_file($className . '.php')) {
            require $className . '.php';
        }
    }
    function load2($className)
    {
        echo 2;
        if (is_file('./app/' . $className . '.php')) {
            require './app/' . $className . '.php';
        }
    }
    function __autoload($className)
    {
        echo 3;
        if (is_file('./lib/' . $className . '.php')) {
            require './lib/' . $className . '.php';
        }
    }
    //注册了3个
    spl_autoload_register('load1');
    spl_autoload_register('load2');
    spl_autoload_register('__autoload'); 
    $db = new DB(); //DB就在本目录下
    $info = new Info(); //Info 在/lib/Info.php




    我们注册了3个自动加载函数。执行结果是啥呢?


    1Hello DB
    123Hello Info


    当然这个结果是怎么来的的让我们分析一下
    new DB的时候,就按照注册顺序,先去找load1()函数了,发现找到了,就停止了,所以输出1 Hello
    new Info的时候,先是安装注册顺序,先找load1(), 所以输出了1,发现没找到,就去load2()里面去找,所以输出了2,
    还是没这个文件,就去__autoload()函数里找,所以,先输出了3,再输出Hello Info
    注意:spl_autoload_register使用时,__autoload会无效,有时候,我们希望它继续有效,就可以也将它注册进来,就可以继续使用
    展开全文
  • 素数的个数统计

    千次阅读 2015-10-21 00:47:10
    2.C语言标准就规定不允许同一作用域中两个函数重名。和C语言相关的域有两种,一个是给编译器看得,还有一种是给链接器看的,而给编译器看的这种域主要是关于 变量的可见范围,而链接器看到的那个是叫文件域,而全局...
  • 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。 默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样。 命名空间...
  • 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。5.不同文件中可以使用...
  • 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的。因为php在new的时候不管...
  • JVM虚拟机--点点滴滴

    2012-10-02 22:41:16
    1、class文件中,字段表集合中,不会出现父类或者接口中继承而来的字段,但是有可能会列出原来代码...2、java语言中,不允许存在两个同名的字段。但是在class文件中,只要两个字段的描述符不一样,那么重名就是合法的。
  • 11.3.9 final:不允许方法被覆盖 310 11.3.10 重温静态方法 311 11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量...
  • 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。 需要注意的是: 命名空间的命名方式需要和文件夹文件名称对应; 使用namespace的目的: 团队...
  • php命名空间的一个最明确的作用是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。上一章节介绍了什么是php命名空间。php官网已很明确的进行了定义并形象化解释,这里直接从php...
  • 11.3.9 final:不允许方法被覆盖 310 11.3.10 重温静态方法 311 11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量...
  • 11.3.9 final:不允许方法被覆盖 310 11.3.10 重温静态方法 311 11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    在压缩和删除时,压缩文件名中不允许有通配 符。 在 Unix 中,你需要将 RAR 命令行参数置于单引号或双引号中,防止被 Shell 解释。例如,这命令将从当前目录中所有的 RAR 压缩文件中解压的 *.asm 文件: rar ...
  • 2、在此机器人中不允许有管理员(因为我有两个机器人用同一个数据库,用来实现一个机器人自动建主不会被其他管理员控制) 在ghost.cfg文件中添加 bot_noadmin 1 开启 3、在房间名中添加随机文字,防止重名(虽然...
  • WinRAR_4.0.exe

    2011-02-04 11:34:33
    包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~...
  • 包含两个掩码,并且所有文件及匹配第一个掩码,也匹配第二个掩码, 第一个掩码 将拥有更高的优先权,即使它被放到第二个后面。例如,存在*.cpp 和 f*.cpp 掩码 的情况下,f*.cpp 拥有更高的优先权。 RAR ...
  • 17.两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的( B )。 A、互斥 B、同步 C、调度 D、伙伴 18.当每类资源只有...
  • 2、新版本已经把Collector.ini放到可执行文件的当前目录,而且新版本还有一个language文件夹和desktop.ini、Collector.ico两个文件。 3、添加清除本软件在注册表的信息,如果你想用本软件可以选中清除软件痕迹...
  • 注册表将能读取、写出或刷新包含注册表系统映像的其中一个文件。  1017 系统试图将文件加载或还原到注册表中,但是,指定的文件不是注册表文件格式。  1018 试图在注册表键(已经标记为删除)中完成的操作...
  • pyvidc 超级中介

    2009-07-17 21:26:24
    所以还是延用vb的后台运行方法来调用py文件,附带两个vb脚本范例。hidemps.vbs,hidevidcc.vbs 4.目前代码使用了大量的try陷阱做保护,在一定程度上影响性能。日后逐步取代try的使用。 chentca@21cn.com 2009-06-...
  • 【04-面向对象(上)】

    2018-07-03 21:41:30
    •所以方法的重载只要满足两个条件(两同一不同):1.同一个类中,方法名相同;2.形参不同。和返回值类型无关.  所以在调用这些方法时要传入不同的参数值. 成员变量和局部变量 •成员变量指的是在类范围里定义...
  • Hibernate中文API大全

    千次下载 热门讨论 2012-02-16 14:47:49
    换句话说,两个人可能重名,但是两个Person对象应该包含两个独立的Name对象,只不过这两个Name对象具有“同样”的值。 组件的值可以为空,其定义如下。 每当Hibernate重新加载一个包含组件的对象,如果该组件的所有...
  • 郑州大学包装在线

    2004-07-23 00:00:00
    1)目前有两个账户: 一个是系统管理员: 账户:percyboy 密码:percyboy 这个用户一定不要删除,否则很多管理功能无法进行,你看了源代码就知道了。 一个是普通学生身份(就是我自己了:)) 账户:破宝...
  • Excel新增工具集

    2011-12-20 09:30:27
    例如:存到[独立]文件夹中的名称为张三、李四的两个文件,可以对应的分别转存到张三、李四两个文件夹中,并将这两个文件改名为[9月份工资]。 5、把工作表内容分类群发到邮件与手机:软件首先将工作表记录分类另存为...
  • C学习深入学习总结

    2017-11-03 16:59:17
    1.5 全局变量为什么不允许定义在头文件中?有何危害? 3 2 Static 4 2.1 static的三主要作用是什么? 4 2.2 static的修饰的局部变量是保存在什么地方的?全局变量哪? 5 2.3 static修饰的全局变量和函数,在其他的...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

不允许两个文件重名