我有以下基类
class Grammateas
{
public:
Grammateas(std::string name):_name(name){};
virtual ~Grammateas(){};
private:
std::string _name;
};
Run Code Online (Sandbox Code Playgroud)
和以下派生类
class Boithos final : public Grammateas
{
public:
//using Grammateas::Grammateas;
Boithos(int hours):Grammateas("das"),_hours(hours){};
virtual ~Boithos(){};
private:
int _hours;
};
Run Code Online (Sandbox Code Playgroud)
我想使用Base类构造函数来创建这样的对象
Boithos Giorgakis(5); //works
Boithos Giorgakis("something"); //Bug
Run Code Online (Sandbox Code Playgroud)
我读过我可以使用using关键字但是当我尝试使用它时
using Grammateas::Grammateas;
Run Code Online (Sandbox Code Playgroud)
编译器返回一条消息
错误:'Grammateas :: Grammateas'的名字构造函数
你能帮我理解带有构造函数的using关键字吗?
我在运行时加载ttf字体并使用CoreText注册它们.稍后,当字体更新时,我从CoreText取消注册字体,从服务器下载最新版本并再次使用CoreText注册字体.
这几乎可以工作,但看起来字体是缓存的,直到我的应用程序终止并重新启动才更新.
取消注册字体并从任何缓存中删除它的正确方法是什么?
我使用此代码取消注册字体:
NSURL *url = /* My url to the font */;
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef) url);
CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
CFErrorRef error = nil;
CTFontManagerUnregisterGraphicsFont(newFont, &error);
CGFontRelease(newFont);
if (error) {
NSLog(@"Error unregistering font: %@", error);
}
return newFontName;
Run Code Online (Sandbox Code Playgroud)
我觉得有一件事是错的,但不知道如何解决,我是如何得到的CGFontRef.是否CGFontCreateWithDataProvider每次都创建新的引用,或者CGFontRef如果它已存在,我是否已获得已注册的引用?有没有更好的方法来获得CGFontRef已经注册的字体?
我只使用字体来创建动态UIImage实例,所以我认为没有任何标签或其他UI元素保持对字体的引用.
谢谢你的帮助!
我有这个简单的问题,我不会画一个像撕裂的形状,但没有使用更多的一个形状(椭圆和多边形)因为QPen是为每个形状绘制,我想要的是像连接形状创建一个新的,或告诉QT跨越两个形状的边界,有关我想要看到图像的更多信息,我想创建一个这样的shabe:https://docs.google.com/open?id = 0Bxb0hT_U-KqJSHZUMTF2eFlOYzg
告诉我你是否能看到我想要的图像和理解,并感谢你的帮助.
我将描述的情况发生在iPad 4(ARMv7s)上,使用posix libs进行互斥锁定/解锁.我在其他ARMv7设备上看到了类似的东西(见下文),所以我想任何解决方案都需要更全面地了解ARMv7的互斥锁和内存栅栏的行为.
场景的伪代码:
线程1 - 生成数据:
void ProduceFunction() {
MutexLock();
int TempProducerIndex = mSharedProducerIndex; // Take a copy of the int member variable for Producers Index
mSharedArray[TempProducerIndex++] = NewData; // Copy new Data into array at Temp Index
mSharedProducerIndex = TempProducerIndex; // Signal consumer data is ready by assigning new Producer Index to shared variable
MutexUnlock();
}
Run Code Online (Sandbox Code Playgroud)
线程2 - 消费数据:
void ConsumingFunction () {
while (mConsumerIndex != mSharedProducerIndex) {
doWorkOnData (mSharedArray[mConsumerIndex++]);
}
}
Run Code Online (Sandbox Code Playgroud)
以前(当问题出现在iPad 2上时),我认为这mSharedProducerIndex = TempProducerIndex不是原子地执行,因此改为使用 …
我有一个iPad应用程序,我正在创建和连接posix socket.connect(...)当远程设备拒绝连接尝试时,呼叫未按预期响应.
我是如何创建和连接的简化示例socket:
struct sockaddr_in server;
server.sin_family = AF_INET;
int socket = socket(AF_INET, SOCK_STREAM, 0);
if(socket < 0)
{
NSLog(@"socket create failed: %s", strerror(errno));
}
else if(inet_aton(mAddress, &server.sin_addr))
{
server.sin_port = htons(mPortNumber);
if(connect(socket, (struct sockaddr *)&server, sizeof(server)) == -1)
{
NSLog(@"connect() failed: %s", strerror(errno));
}
else
{
NSLog(@"connect() succeeded");
}
}
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,上述示例有效:例如,对于正在接受连接的远程设备(以下称为"服务器"),按预期connect()返回0.对于不存在的地址,connect()一段时间的块然后返回-1,并且errno是ETIMEDOUT.
从文档,如果服务器拒绝连接尝试我希望connect()返回-1并errno成为ECONNREFUSED或可能ECONNRESET.相反, …
我最近一直在研究Qt,并提出以下问题:
QAction和之间有什么区别QToolButton?QPushButton?例如,我应该覆盖以便在鼠标进入QPushButton界限时获得通知吗?我不需要为了获得signal click().我正在写一个图书馆,可能会被那些不是我的人使用.
假设我写了一堂课:
InterestingClass.h
@interface InterestingClass: NSObject
- (id)initWithIdentifier:(NSString *)Identifier;
@end
Run Code Online (Sandbox Code Playgroud)
InterestingClass.m
@interface InterestingClass()
- (void)interestingMethod;
@end
@implementation InterestingClass
- (id)initWithIdentifier:(NSString *)Identifier {
self = [super init];
if (self) {
[self interestingMethod];
}
return self;
}
- (void)interestingMethod {
//do some interesting stuff
}
@end
Run Code Online (Sandbox Code Playgroud)
如果某人稍后使用该库并决定创建一个子类InterestingClass?
InterestingSubClass.h
@interface InterestingSubClass: InterestingClass
@end
Run Code Online (Sandbox Code Playgroud)
InterestingSubClass.m
@interface InterestingSubClass()
- (void)interestingMethod;
@end
@implementation InterestingSubClass
- (void)interestingMethod {
//do some equally interesting, but completely unrelated stuff
}
@end
Run Code Online (Sandbox Code Playgroud)
未来的库用户可以从公共接口看到这initWithIdentifier是超类的方法.如果他们覆盖此方法,他们可能会(正确地)假设superclass应该在子类实现中调用该方法.
但是,如果他们定义了一个方法(在子类私有接口中),该方法无意中与超类"私有"接口中的无关方法同名?如果没有它们读取超类私有接口,他们就不会知道它们不仅仅是创建一个新方法,而且还覆盖了超类中的某些东西.子类实现可能最终被意外调用,并且在调用方法时超类期望完成的工作将无法完成.
我读过的所有SO问题似乎都暗示这就是ObjC的工作方式,并且没有办法绕过它.是这种情况,还是 …
假设我有一个Scala列表List("apple", "orange", "banana", "chinese gooseberry")*.我想搜索此列表并返回列表中与我已有项目相关的上一项.
例如:getPrevious(fruit: String, fruits: List[String]): Option[String]应该返回
Some("apple")如果我把它称为fruitarg "orange";Some("banana")为 "chinese gooseberry";None如果我调用它"apple"(没有以前的元素存在)或"potato"(不存在于列表中).很容易完成,但我怎么能以优雅的功能方式做到这一点?我能想到的最好的是以下内容:
def previous(fruit: String, fruits: List[String]): Option[String] =
fruits.sliding(2)
.filter { case List(previous, current) => current == fruit }
.toList
.headOption
.map { case List(previous, current) => previous }
Run Code Online (Sandbox Code Playgroud)
它有效,但它不优雅或高效.我特别讨厌转换filter迭代器toList.我怎样才能改进它?
(*作为一个旁边,是List用于sliding迭代的最佳集合?)
我正在尝试使用安装在/ home/user/Software的angstrom工具链来编译qt 4.7.4 for beagle board.
我收到的错误是:
/corelib/arch/qatomic_arm.h:131:错误:没有这样的指令:`swpb%al,%dl,[%esi]'
我的qmake.conf文件如下:
#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = arm-angstrom-linux-gnueabi-gcc
QMAKE_CXX = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-angstrom-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-angstrom-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-angstrom-linux-gnueabi-objcopy
QMAKE_STRIP = arm-angstrom-linux-gnueabi-strip
QMAKE_LIBDIR_QT = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/${libdir}
QMAKE_MOC = /usr/local/angstrom/arm/bin/moc4
QMAKE_UIC = /usr/local/angstrom/arm/bin/uic4
QMAKE_UIC3 = /usr/local/angstrom/arm/bin/uic34
QMAKE_RCC = /usr/local/angstrom/arm/bin/rcc4
QMAKE_QDBUSCPP2XML = /usr/local/angstrom/arm/bin/qdbuscpp2xml4
QMAKE_QDBUSXML2CPP = /usr/local/angstrom/arm/bin/qdbusxml2cpp4
QMAKE_INCDIR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/include
QMAKE_LIBDIR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib
QMAKE_INCDIR_X11 = …Run Code Online (Sandbox Code Playgroud) 在开关盒中安装开关盒是不好的做法吗?如果是这样,有什么替代方案?我真的不想使用if/ else if如果我不需要.
而不是做一些像:
if((this == 1) && (that == 1)){ //something }
else if((this == 1) && (that == 2)){ //something }
else if((this == 2) && (that == 3)){ //something }
Run Code Online (Sandbox Code Playgroud)
我在思考:
switch(this){
case 1:
switch(that){
case 1:
// something
break;
....
}
break;
....
}
Run Code Online (Sandbox Code Playgroud)
这对我来说真的很不对劲.语法没有错,但在正确的练习方面是错误的.