我需要从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
你知道我怎样才能将浮点值转换为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)
谢谢您的帮助.
首先,据我所知,init in Objective-C,在功能上类似于构造函数Java,因为它用于初始化实例变量并准备一个类来完成一些工作.它是否正确?
我理解NSObject实现init,因此它不需要在任何.h文件中声明.
但是如何为给定的类自定义init的实现,例如:
(id) initWithName:(NSString *) name
Run Code Online (Sandbox Code Playgroud)
这样的声明应该作为一部分列出.h,还是没有必要?它是按惯例完成还是有其他推理?
下面的代码生成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)
我已经看到了使用静态方法的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
我发现了一些奇怪的代码......
//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?的文件中调用方法时才会发生这种情况吗?
我们知道UIImageView对图像序列动画有很好的支持.我们可以轻松地创建一个UIImage对象数组,设置animationImages属性,配置动画持续时间,重复计数等,然后只需触发.但似乎没有办法知道这个动画何时结束.
假设我有十张图像,然后我想用它们运行动画(重复计数= 1).当动画结束时,我想运行一些其他代码.知道动画结束的最佳方法是什么?
我已经明白我可以创建一个NSTimer并安排它在动画持续时间后触发.但是如果你需要很好的精度,你真的不能依赖计时器.
所以我的问题是,有没有更好的方法来知道UIImageView图像序列动画已经结束而不使用计时器?
代码是这样的
myImageView.animationImages = images; // images is a NSArray of UIImages myImageView.animationDuration = 2.0; myImageView.animationRepeatCount = 1; [myImageView startAnimating]
我发现通过参考方法使用ActionScript的数组赋值并不熟悉.我理解它在做什么,但我发现用这种方法管理很多数组会让人感到困惑.是否有一种简单的方法来处理ActionScript数组,其中数组赋值是通过VALUE而不是REFERENCE?例如,如果我想在将来永远分配oneArray给twoArray两个数组而不是将它们连接起来,那该怎么做呢?这会有用吗?
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) 我正在学习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行],它是不同对象中的私有成员.即使对象作为参数传递,私有范围也不限于同一个类吗?
假设我有以下最小的示例类:
#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 Foo从operator+避免类似构造a + b …
c++ ×5
objective-c ×3
c++11 ×2
actionscript ×1
apache-flex ×1
factory ×1
header ×1
init ×1
ios ×1
iphone ×1
mingw ×1
namespaces ×1
oop ×1
static ×1
uiimageview ×1