小编tas*_*oor的帖子

c ++中整数的幂

我需要从pow(a,b)整数中得到结果(a和b都是整数).目前(int) pow( (double)a, (double)b)包含的计算是错误的.也许有人可以帮助一个函数,用整数执行pow(a,b)并返回一个整数?

但这里有一个奇怪的部分:我使用Geany(和g ++/gcc编译器)在Linux中创建了我的脚本,并且只pow(a,b)编译了脚本并且工作正常.但在大学里我有Dev-C++(和MS Windows).在Dev-C++中,脚本没有使用错误[Warning] converting toint' 编译double'

我需要在Windows(和Mingw编译器)下使这个scrpit工作.

提前致谢,

-skazhy

c++ mingw

15
推荐指数
6
解决办法
4万
查看次数

将浮点值转换为NSString

你知道我怎样才能将浮点值转换为nsstring值,因为我的代码存在错误.

我的代码:

- (float)percent:(float)a :(float)b{
    return a / b * 100;
}

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
  // ....   

    float tx_nb_demande_portabilite = [self percent: [(NSNumber*) [stat nb_demande_portabilite] floatValue] :[(NSNumber*) [stat nb_users] floatValue]];
    NSString *tx_nb_demande_portabilite_st = [NSString stringWithFormat:@"%@", tx_nb_demande_portabilite];
//....
}
Run Code Online (Sandbox Code Playgroud)

错误 :

EXC_BAD ACCESS for NSString *tx_nb_demande_portabilite_st = [NSString stringWithFormat:@"%@", tx_nb_demande_portabilite];
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

objective-c

15
推荐指数
1
解决办法
3万
查看次数

Objective-C:应该在.h中声明init方法吗?

首先,据我所知,init in Objective-C,在功能上类似于构造函数Java,因为它用于初始化实例变量并准备一个类来完成一些工作.它是否正确?

我理解NSObject实现init,因此它不需要在任何.h文件中声明.

但是如何为给定的类自定义init的实现,例如:

(id) initWithName:(NSString *) name
Run Code Online (Sandbox Code Playgroud)

这样的声明应该作为一部分列出.h,还是没有必要?它是按惯例完成还是有其他推理?

objective-c init

12
推荐指数
1
解决办法
3538
查看次数

即使在使用命名空间指令之后也没有模糊的引用错误

下面的代码生成call of overloaded ‘bar()’ is ambiguous错误应该是因为我bar在全局和foo命名空间中都有一个函数,并且我调用了using namespace foo指令.

namespace foo {
    void bar() {}
}

void bar() {}

using namespace foo;

int main() {
    bar();
}
Run Code Online (Sandbox Code Playgroud)

我也期待以下代码出现同样的错误:

#include <cstdlib>
#include <iostream>

int abs(int n) {
    return n > 0 ? n : -n;
}

using namespace std;

int main() {
    int k;

    cin >> k;

    cout << abs(k) << endl;
}
Run Code Online (Sandbox Code Playgroud)

我已经定义了一个int abs(int n)cstlib中存在的函数,我调用了using namespace …

c++ namespaces c++11

10
推荐指数
2
解决办法
935
查看次数

工厂用静态方法实现

我已经看到了使用静态方法的Factory实现.像这样的东西:

public class MyFactory {
    public static Product1 createProduct1() {}
    public static Product2 createProduct2() {}
}

p1 = MyFactory.createProduct1();
p2 = MyFactory.createProduct2();
Run Code Online (Sandbox Code Playgroud)

我不确定我是否可以将其称为抽象工厂,但这不是问题.我对抽象工厂的理解是,它为我们提供了轻松更改产品系列的灵活性.

Factory factory = new MyFactory();  // might be a global or Singleton
p1 = factory.createProduct1();
p2 = factory.createProduct2();
Run Code Online (Sandbox Code Playgroud)

如果我想改变MyFactory,YourFactory那么只需要改变一行.我也可以在运行时更改它.但它们是否可以作为静态方法实现?我需要将所有调用更改为静态工厂.如果我们想在运行时决定,还需要在每个地方使用if-else检查.

p1 = YourFactory.createProduct1();
p2 = YourFactory.createProduct2();
Run Code Online (Sandbox Code Playgroud)

那么使用静态方法实现工厂的好处是什么?我们不是失去了主要的灵活性吗?我错过了什么?

请注意,不承担任何特定语言.任何帮助表示赞赏.

static design-patterns factory factory-pattern abstract-factory

9
推荐指数
1
解决办法
6858
查看次数

如果在呼叫站点看不到的代码中定义了默认参数值,该怎么办?

我发现了一些奇怪的代码......

//in file ClassA.h:
class ClassA {
public:
    void Enable( bool enable );
};

//in file ClassA.cpp
#include <ClassA.h>
void ClassA::Enable( bool enable = true )
{
   //implementation is irrelevant
}

//in Consumer.cpp
#include <ClassA.h>
....
ClassA classA;
classA.Enable( true );
Run Code Online (Sandbox Code Playgroud)

显然,因为Consumer.cpp只包含ClassA.h而不是ClassA.cpp编译器将无法看到该参数具有默认值.

ClassA::Enable方法实现的签名中声明的默认值何时会产生任何影响?只有在包含ClassA.cpp?的文件中调用方法时才会发生这种情况吗?

c++ header

8
推荐指数
1
解决办法
7636
查看次数

iPhone:检测UIImageView图像序列动画结束的最佳方法

我们知道UIImageView对图像序列动画有很好的支持.我们可以轻松地创建一个UIImage对象数组,设置animationImages属性,配置动画持续时间,重复计数等,然后只需触发.但似乎没有办法知道这个动画何时结束.

假设我有十张图像,然后我想用它们运行动画(重复计数= 1).当动画结束时,我想运行一些其他代码.知道动画结束的最佳方法是什么?

我已经明白我可以创建一个NSTimer并安排它在动画持续时间后触发.但是如果你需要很好的精度,你真的不能依赖计时器.

所以我的问题是,有没有更好的方法来知道UIImageView图像序列动画已经结束而不使用计时器?

代码是这样的

myImageView.animationImages = images; // images is a NSArray of UIImages
myImageView.animationDuration = 2.0;
myImageView.animationRepeatCount = 1;

[myImageView startAnimating]

iphone objective-c uiimageview ios

8
推荐指数
1
解决办法
5402
查看次数

ActionScript:如何通过VALUE而不是REFERENCE分配数组?

我发现通过参考方法使用ActionScript的数组赋值并不熟悉.我理解它在做什么,但我发现用这种方法管理很多数组会让人感到困惑.是否有一种简单的方法来处理ActionScript数组,其中数组赋值是通过VALUE而不是REFERENCE?例如,如果我想在将来永远分配oneArraytwoArray两个数组而不是将它们连接起来,那该怎么做呢?这会有用吗?

var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array(3);
for (ii=0; ii<3; ii++) { twoArray[ii] = oneArray[ii]; }
Run Code Online (Sandbox Code Playgroud)

目的是能够在twoArray不看到变化的情况下进行更改oneArray.

有关如何通过VALUE而不是REFERENCE分配数组的任何建议吗?

- - 以供参考 - -

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html

数组赋值是通过引用而不是值.将一个数组变量分配给另一个数组变量时,两者都引用相同的数组:

var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array = oneArray; // Both array variables refer to the same array.
twoArray[0] = "z";             
trace(oneArray);               // Output: z,b,c.
Run Code Online (Sandbox Code Playgroud)

apache-flex actionscript actionscript-3

8
推荐指数
2
解决办法
1728
查看次数

面向对象的编程逻辑

我正在学习C++中OOP的基本概念,但我遇到了一个逻辑问题.

#include <iostream>
#include <conio.h>

using namespace std;

class A {
    int i;
public:
    void set(int x) {
        i=x;
    }
    int get() {
        return i;
    }
    void cpy(A x) {
        i=x.i; 
    }
};

int main()
{
    A x, y;
    x.set(10);
    y.set(20);

    cout << x.get() << "\t" << y.get() << endl;
    x.cpy(y);
    cout << x.get() << "\t" << y.get() << endl;
    getch();
}
Run Code Online (Sandbox Code Playgroud)

我想在上面的代码中知道为什么我能够访问x.i[第19行],它是不同对象中的私有成员.即使对象作为参数传递,私有范围也不限于同一个类吗?

c++ oop

8
推荐指数
2
解决办法
899
查看次数

使用移动赋值从算术运算符重载返回const值

假设我有以下最小的示例类:

#include <iostream>

class Foo {
public:
    Foo() = default;

    Foo(const Foo&) = default;
    Foo(Foo&&) noexcept = default;

    Foo& operator=(const Foo& rhs) {
        std::cout << "copy\n";

        return *this;
    }

    Foo& operator=(Foo&& rhs) noexcept {
        std::cout << "move\n";

        return *this;
    }

    Foo operator+(const Foo& rhs) const {
        Foo x; // with some calculation

        return x;
    }
};

int main() {
    Foo a, b, c;

    a = b + c;
}
Run Code Online (Sandbox Code Playgroud)

move按预期打印.现在,根据有效的C++项目3,我应该返回const Foooperator+避免类似构造a + b …

c++ c++11

8
推荐指数
1
解决办法
222
查看次数