C++有内置类型,如long long int,unsigend int.类型可以与限定符组合,例如const,volatile和mutable.
为什么是long long int数据类型?为什么没有命名longLongInt?多字数据类型如何工作?我可以定义自己的吗?
是否可以根据自定义数据类型定义自定义限定符?
例如,考虑3D中的线性代数向量.可以定义一个LinAlVector类,它包含向量的x,y,z分量.
如果我现在需要确保,这个向量是一个单位向量(长度等于1),我想知道我是否可以写
isUnit LinAlVector vec(x,y,z);
Run Code Online (Sandbox Code Playgroud)
其中isUnit是影响行为的修饰符LinAlVector(例如,如果定义了非单位向量,则为编译器错误).
我知道OO直截了当的方法是派生类UnitLinAlVector的LinAlVector.
我已经更改了 Spring Boot (2.1.4) 服务,该服务消耗 aRestTemplate以使用@Qualifier. 现在我的测试(使用@RestClientTest和@AutoConfigureWebClient)失败了,因为它无法解析 bean。
我该如何解决?
配置:
@Bean
@Qualifier("eureka")
@LoadBalanced
RestTemplate eurekaRestTemplate() {
Run Code Online (Sandbox Code Playgroud)
服务:
public ClarkClient(
@Qualifier("eureka") RestTemplate restTemplate, ClarkConfiguration configuration)
throws URISyntaxException {
Run Code Online (Sandbox Code Playgroud)
考试:
@ExtendWith({SpringExtension.class, MockitoExtension.class})
@RestClientTest({CastorClient.class, CastorConfiguration.class})
@AutoConfigureWebClient(registerRestTemplate = true)
class CastorClientWebTest {
@Autowired
private CastorClient cut;
@Autowired
private MockRestServiceServer server;
Run Code Online (Sandbox Code Playgroud)
错误:
[2019-04-16T14:02:22,614] [WARN ] [ ....AnnotationConfigApplicationContext] [refresh 557] : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'castorClient' defined …Run Code Online (Sandbox Code Playgroud) CallingApp.java
@Service
@ComponentScan(basePackages = { "com.codegeekslab.type" })
public class CallingApp {
@Autowired
@Qualifier("BasicPhone")
private Phone phone;
public CallingApp(Phone phone) {
this.phone = phone;
}
public void makeCall(int number) {
phone.openApp(number);
}
}
Run Code Online (Sandbox Code Playgroud)
Phone.java
package com.geekslab.device;
public interface Phone {
public void openApp(int number);
}
Run Code Online (Sandbox Code Playgroud)
BasicPhone.java
package com.codegeekslab.type;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import com.geekslab.device.Phone;
@Component("BasicPhone")
public class BasicPhone implements Phone {
{
System.out.println("BasicPhone");
}
public void openApp(int number) {
System.out.println("calling via simcard... " + number);
}
}
Run Code Online (Sandbox Code Playgroud)
SmartPhone.java
package …Run Code Online (Sandbox Code Playgroud) 我在编译 BoringSSL 时发现 gcc 和 clang 之间的行为差异,并且能够将其缩减为以下测试用例来说明:
\ntypedef char *OPENSSL_STRING;\n#if USE_TYPEDEF\n#define constptr const OPENSSL_STRING\n#else\n#define constptr const char *\n#endif\n\nint\nfoo (const void **ap)\n{\n constptr a = (constptr) *ap;\n return a != 0;\n}\nRun Code Online (Sandbox Code Playgroud)\n我测试了四种场景,如下:
\nsh$ g++ -c t2.cc -Wignored-qualifiers -DUSE_TYPEDEF\nt2.cc: In function \xe2\x80\x98int foo(const void**)\xe2\x80\x99:\nt2.cc:11:30: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]\n 11 | constptr a = (constptr) *ap;\n | ^~\nsh$ g++ -c t2.cc -Wignored-qualifiers \nsh$ clang++ -c t2.cc -Wignored-qualifiers -DUSE_TYPEDEF\nsh$ clang++ -c t2.cc -Wignored-qualifiers \nsh$ \nRun Code Online (Sandbox Code Playgroud)\n … 我有一个问题,为什么某个东西“一步一步”完成后为什么不能编译,而为什么“一步一步”完成却不能编译。我有三节课;
class Time {
int mTime;
int Time::getTimeAsUnix() const {return mTime;}
}
class Travel {
Time mTimestamp;
const Time& Travel::getTime() const { return mTimestamp; }
Time& Travel::getTime() { return mTimestamp; }
}
class Analysis : public Travel {
int Analysis::getUnixTime() const {
// Time& t = Travel::getTime();
// return t.getTimeAsUnix(); // This does NOT compile
return Travel::getTime().getTimeAsUnix(); // This compiles
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么在Analysis类中编译非注释方法,而注释方法却给我一个即时的“ C ++错误:尝试时将'const Time'绑定到类型'Time&'的引用时会丢弃限定符”吗?
两者执行时不是完全一样吗?
BubbleSort.java 该类实现SortAlgorithm接口
package com.prakash.Spring.Example;
import org.springframework.stereotype.Component;
@Component
@Qualifier("bubbleSort")
public class BubbleSort implements SortAlgorithm {
public void sort() {
System.out.println("Sort from Bubble Sort");
}
}
Run Code Online (Sandbox Code Playgroud)
QuickSort.java 该类实现了SortAlgorithm接口包com.prakash.Spring.Example;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
@Component
@Qualifier("quickSort")
public class QuickSort implements SortAlgorithm {
@Override
public void sort() {
System.out.println("Sort from Quick Sort");
}
}
Run Code Online (Sandbox Code Playgroud)
排序算法.java
package com.prakash.Spring.Example;
public interface SortAlgorithm {
void sort();
}
Run Code Online (Sandbox Code Playgroud)
BinarySearch.java 在这个类中,我想使用 fastSort bean 作为我的组件。
package com.prakash.Spring.Example;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@Component
public class BinarySearch {
@Autowired …Run Code Online (Sandbox Code Playgroud)